iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python常用程序算法
  • 257
分享到

python常用程序算法

算法常用程序 2023-01-31 00:01:05 257人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

一。冒泡排序: 1.冒泡排序是将无序的数字排列成从小到大的有序组合: 过程:对相邻的两个元素进行比较,对不符合要求的数据进行交换,最后达到数据有序的过程。 规律: 1.冒泡排序的趟数时固定的:n-1 2.冒泡排序比较的次数时固定的:n*(

一。冒泡排序

1.冒泡排序是将无序的数字排列成从小到大的有序组合:

过程:对相邻的两个元素进行比较,对不符合要求的数据进行交换,最后达到数据有序的过程。

规律:

1.冒泡排序的趟数时固定的:n-1

2.冒泡排序比较的次数时固定的:n*(n-1)/2

3.冒泡排序交换的次数时不固定的:但是最大值为:n*(n-1)/2

注意:n = 数据个数,排序过程中需要临时变量存储要交换的数据

eg:

l=[688, 888, 711,999,1,4,6]
for i in range(len(l)-1):
    for j in range(len(l)-1):
        if l[j]>l[j+1]:
            tmp=l[j]
            l[j]=l[j+1]
            l[j+1]=tmp
print(l)

 

二。选择排序:

list=[10,3,5,2,9]

过程,循环当前列表,将当前循环到的值与余下的每个数字相比较,如果比当前值小,就与当前值交换位置。

eg:

l=[688, 888, 711,999,1,4,6]
for i in range(len(l)-1):
    for j in range(i+1,len(l)):
        if l[j]<l[i]:
            tmp=l[i]
            l[i]=l[j]
            l[j]=tmp
print(l)

优化:每次找到最小值后不立即替换,而是等待本次循环结束再替换,减少了操作的次数,效率提高了

l=[688, 888, 711,999,1,4,6]
for i in range(len(l)-1):
    Min=i
    for j in range(i+1,len(l)):
        if l[Min] > l[j]:
            Min=j
    tmp=l[Min]
    l[Min]=l[i]
    l[i]=tmp
print(l)

 三。插入排序:

插入排序(Insertion Sort)的基本思想是:将列表分为2部分,左边为排序好的部分,右边为未排序的部分,循环整个列表,每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。

eg:

array=[9,8,7,6,5,4,3,2,1]

for i in range(1,len(array)):
    current_val=array[i]
    current_position=i
    while current_position >0 and array[current_position-1] > current_val:
        array[current_position]=array[current_position-1]
        current_position-=1
    array[current_position]=current_val
print(array)

 四。快速排序:

def quick_sort(array,first,last):
    if first >= last: #如果first=last证明不能再继续分半操作,每组只剩下一个元素,所有first=end,这时跳出程序
        return
    start=first
    end=last
    mid=array[first]

    while start < end:
        #将end往左移动
        while start < end and array[end] > mid: #如果成立则一直将end往左移动
            end-=1
        array[start]=array[end]  #如果跳出上层循环则证明当前arrary[end]的值小于mid的值,此时将小的值移动至array[start]位置
        #将start往右移动
        while start < end and array[start] < mid:
            start+=1
        array[end]=array[start]
    array[end]=mid  #当最外层循环不成立时证明start与end相等,这时把start或者end位置赋值成mid的值即可
    #继续左边的分半
    quick_sort(array,first,end-1)
    #继续右边的分半
    quick_sort(array,end+1,last)


if __name__ == '__main__':
    import random,time
    array=[]
    for i in range(8):
        array.append(random.randrange(1,10000))
   # array=[11,22,17,9,8,7,6,5,4,3,2]
    quick_sort(array,0,len(array)-1)
    print(array)

 

--结束END--

本文标题: python常用程序算法

本文链接: https://www.lsjlt.com/news/181485.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python常用程序算法
    一。冒泡排序: 1.冒泡排序是将无序的数字排列成从小到大的有序组合: 过程:对相邻的两个元素进行比较,对不符合要求的数据进行交换,最后达到数据有序的过程。 规律: 1.冒泡排序的趟数时固定的:n-1 2.冒泡排序比较的次数时固定的:n*(...
    99+
    2023-01-31
    算法 常用 程序
  • python 常用的排序算法
    1.插入排序:插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序;首先将第一个作为已经排好序的,然后每次从后的取出插入到前面并排序; def insert_sor...
    99+
    2023-01-30
    算法 常用 python
  • python中几种常用的排序算法
    这篇文章主要介绍“python中几种常用的排序算法”,在日常操作中,相信很多人在python中几种常用的排序算法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python中几...
    99+
    2024-04-02
  • python怎么实现常用的五种排序算法
    这篇文章将为大家详细讲解有关python怎么实现常用的五种排序算法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、冒泡排序原理:比较相邻的元素。如果第一个比第二个大就交换他们两个每一对相邻元素做同样的工...
    99+
    2023-06-20
  • Python排序算法之堆排序算法
    目录1. 树满二叉树的特性:什么是完全二叉树?完全二叉树的专业概念:2. 二叉堆2.1 二叉堆的抽象数据结构2.2 API 实现3. 堆排序4. 后记本文从树数据结构说到二叉堆数据结...
    99+
    2023-01-07
    python堆排序算法实现 堆排序算法以及python实现 python 堆排序算法
  • 你知道 Python 编程中常用的算法吗?
    Python 是一种流行的编程语言,因其易于学习和使用而备受欢迎。在 Python 编程中,算法是不可或缺的一部分。算法是解决问题的方法,可以帮助程序员更有效地完成任务。本文将介绍 Python 编程中常用的算法。 一、排序算法 排序算法是...
    99+
    2023-09-16
    编程算法 分布式 linux
  • python如何实现常用的五种排序算法详解
    目录一、冒泡排序 二、选择排序 三、插入排序 四、希尔排序 五、快速排序 总结一、冒泡排序 原理: 比较相邻的元素。如果第一个比第二个大就交换他们两个 每一对相邻...
    99+
    2024-04-02
  • 常用的JS排序算法有哪些
    这篇文章给大家分享的是有关常用的JS排序算法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.冒泡排序var bubbleSort = fun...
    99+
    2024-04-02
  • c++常用的排序算法有哪些
    小编给大家分享一下c++常用的排序算法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!c++常用的排序算法//选择排序法SelectionSort(int a...
    99+
    2023-06-03
  • 聊聊php中常用的排序方法(算法)
    PHP作为一门重要的编程语言,其实在多个方面都拥有着很好的表现。在数据处理中,排序算法是最为常见和重要的一部分。PHP中提供了多种排序算法,下面详细介绍PHP中常用的排序方法。冒泡排序冒泡排序是PHP中最经典的排序算法之一。该算法通过遍历比...
    99+
    2023-05-14
    php 排序
  • 你是否知道Java编程中常用的排序算法?
    Java编程是一门非常强大的编程语言,它可以应用于各种不同的领域,包括Web应用程序、游戏开发、移动应用程序等等。在Java编程中,排序算法是非常重要的一部分,它可以帮助我们对数据进行排序,使得我们能够更加方便地对数据进行操作和管理。下面我...
    99+
    2023-09-25
    编程算法 django laravel
  • python排序算法(三)
       OK,又到了苦逼的周一了。快排比较复杂,花了快两天琐碎时间琢磨了感觉还不是很好,据我们老师说当年提出快排的人是在上课突然想起来的,我等只能深深膜拜了    快速排序是一种具有良好平均性能的排序方法,插入排序将控制当前插入的基准记录插...
    99+
    2023-01-31
    算法 python
  • python排序算法(一)
       接触python这么些日子下来,感触最深的就是有的知识是相通的,是无论编程语言的,比如说算法O(∩_∩)O~。So,今天开始用python再把之前学过的排序算法重写一遍,权当复习提升吧。    第一个是冒泡排序:def bubble...
    99+
    2023-01-31
    算法 python
  • Python编程中最常用的算法之一——对象文件处理算法。
    Python编程中最常用的算法之一——对象文件处理算法 随着计算机技术的发展,我们面临的数据量越来越大,数据处理的效率也成为了一个重要的问题。对象文件处理算法是Python编程中最常用的算法之一,它可以帮助我们高效地读取、处理和存储数据。在...
    99+
    2023-07-30
    对象 文件 编程算法
  • python常用的各种排序算法原理与实现方法小结
    1. 冒泡排序(Bubble Sort) 基本思想:重复地遍历待排序的数列,每次比较相邻的两个元素,如果它们的顺序错误就交换位置,直到没有需要交换的元素为止。 实现代码: def b...
    99+
    2023-05-17
    python 排序算法
  • python常用运算符-各种除法运算符
    1. /浮点除法,就算分子分母都是int类型,也返回float类型,比如我们用4/2,返回2.02. //整数除法,根据分子分母的不同组合,返回的值有差异。正数//正数,取整,比如5//3,返回1正数//负数,向下取整,比如5//-3,返回...
    99+
    2023-01-31
    运算符 除法 常用
  • python二叉树常用算法总结
    目录1.1 二叉树的初始化1.2 创建一个二叉树1.3 前序遍历1.4 中序遍历1.5 后序遍历1.6 层序遍历1.7 计算节点数1.8 计算树的深度1.9 计算树的叶子树1.10 ...
    99+
    2024-04-02
  • JavaScript中常用的排序算法有哪些
    这篇文章主要介绍JavaScript中常用的排序算法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、冒泡排序冒泡排序是我们在编程算法中,算是比较常用的排序算法之一,在学习阶段...
    99+
    2024-04-02
  • python冒泡法排序算法
    冒泡法排序思想:将数组中的数据两两进行比较,每次将较大的数据交换到后面,直到大数沉底,小数冒出。 可以这样想:10个数据有9组成对,每比完一组,则大的数沉到后面。渐渐地,要比较的数越少,小的数则冒到最前面。   例: 随机产生10个数,从...
    99+
    2023-01-30
    算法 python
  • C++实现十大排序算法及排序算法常见问题
    目录前言0 概述1 冒泡排序2 选择排序3 插入排序4 希尔排序5 归并排序6 堆排序7 快速排序8 计数排序9 桶排序10 基数排序总结前言 本文为C++实现的十大排序算法及基于排...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作