精华内容
下载资源
问答
  • 用python进行冒泡排序

    千次阅读 2019-10-03 15:20:02
    python循环嵌套之冒泡排序: 什么是冒泡排序? 冒泡排序是将是将一堆无序的元素,通过方法、函数将他们变为有序。【就像是水中冒泡一样,把其中最大(小)的一个一个冒出来】 冒泡排序的原理: 通过函数将第一个元素...

    python循环嵌套之冒泡排序:

    什么是冒泡排序?
    冒泡排序是将是将一堆无序的元素,通过方法、函数将他们变为有序。【就像是水中冒泡一样,把其中最大(小)的一个一个冒出来】

    冒泡排序的原理:
    通过函数将第一个元素与其后面的元素进行比较,选出较大(小)的一个,然后继续跟后面的比较,直至比较最后一个。
    也就是说通过第一轮比较后列表的末尾的元素应该是这个列表中最大(小)的元素。【理解这个原理,冒泡排序就算是完成一半了】

    冒泡排序原理图:
    在这里插入图片描述在这里插入图片描述python代码:
    a = [21,33,2,4,535,25,252,32,32,24,5,32]
    for j in range(len(a)-1):
    for i in range(len(a)-1-j):
    if a[i] > a[i+1]:
    a[i],a[i+1] = a[i+1],a[i]
    print(a)

    输出结果:
    [2, 4, 5, 21, 24, 25, 32, 32, 32, 33, 252, 535]

    原理解释:
    1.首先我们需要弄清冒泡排序的原理:拿出列表中的一个数跟其下一个属比较,所以我们就可以得到:
    a = [21,33,2,4,535,25,252,32,32,24,5,32]
    for i in range(len(a)-1):
    if a[i] > a[i+1]:
    其中 len(a)-1 是因为要比较 n-1 次:这里有12个元素,也就是比较11次,这个没毛病吧。
    len(a)就是a列表的长度12,range(len(a)-1) == range(0:11) ,其中 0:11 一共有(11-0)个数(取头不取尾),绕来绕去也就是想说明一个问题:我们遍历了 0~ n-1 【这里可能比较难理解】【注意区分下标和次数】

    比较之后需要将他们换位置:
    a = [21,33,2,4,535,25,252,32,32,24,5,32]
    for i in range(len(a)-1):
    if a[i] > a[i+1]:
    a[i],a[i+1] = a[i+1],a[i]
    print(a)

    这样内层函数就做好了,这个时候输出的 a 只会把最大的输出来,而我们需要把每个最大的都打印出来,同理就需要将这一整个for循环再循环几遍,那么到底循环几遍呢?

    没错就是 n-1 遍:
    a = [21,33,2,4,535,25,252,32,32,24,5,32]
    for j in range(len(a)-1):
    for i in range(len(a)-1-j):
    if a[i] > a[i+1]:
    a[i],a[i+1] = a[i+1],a[i]
    print(a)

    完了,就这样了!

    没看懂?
    少了个 j 没错,接下来还有一个比较难理解的地方:【对于整个循环】
    第一次循环: j = 0, i走到–>n-2 range(0, n-1)
    第二次循环: j = 1, i~n-3 range(0, n-1-1)
    第三次循环: j = 2, i~n-4 range(0, n-1-1-1)
    可得: range(0, n-1-j)

    引入 j 的意思:
    每次循环后我们就不需要管已经排好序的数了。
    外层循环控制走多少次,内层循环控制从头走到尾。
    第一次看不懂没关系,多试几次就好了。

    展开全文
  • Python 选择排序

    万次阅读 2019-11-27 20:07:59
    Python 选择排序 基本原理: 从剩余待排序的数组中选择最小的数和待排序的数做对比。 时间复杂度为O(n^2),n为数组的个数。 空间复杂度为O(1)。 不稳定算法。 该图片来源于网络 选择排序 def select_sort(array): ...

    Python 选择排序

    基本原理:

    从剩余待排序的数组中选择最小的数和待排序的数做对比。

    时间复杂度为O(n^2),n为数组的个数。

    空间复杂度为O(1)。

    不稳定算法。
    选择排序算法
    该图片来源于网络

    选择排序

    def select_sort(array):
        """
        选择排序
    
        :param array: 数组
        :return: 已排序的数组
        """
        length = len(array)
        for i in range(length - 1):
            least = i
            for j in range(i + 1, length):
                if array[j] < array[least]:
                    # 更新least
                    least = j
            # 交换位置
            array[least], array[i] = array[i], array[least]
        return array
    展开全文
  • Python 快速排序

    万次阅读 2019-11-27 20:12:43
    Python 快速排序 基本原理: 利用递归的思想,在开始的时候选择一个基准值,大于这个基准值的数存放到一个列表中,其他值存放到另一个列表中,然后这两个列表进行递归操作。 时间复杂度为O(nlog2n),n为数组的个数。...

    Python 快速排序

    基本原理:

    利用递归的思想,在开始的时候选择一个基准值,大于这个基准值的数存放到一个列表中,其他值存放到另一个列表中,然后这两个列表进行递归操作。

    时间复杂度为O(nlog2n),n为数组的个数。

    空间复杂度为O(nlog2n)。

    不稳定算法。
    快速排序算法
    该图片来源于网络

    快速排序

    def quick_sort(array):
        """
        快速排序
    
        :param array: 数组
        :return: (array)已排序的数组
        """
        # 递归退出的条件
        length = len(array)
        if length <= 1:
            return array
        else:
            # 可以选第一个元素作为基准值,也可以选最后一个
            pivot = array.pop()
            greater, lesser = [], []
            for element in array:
                if element > pivot:
                    greater.append(element)
                else:
                    lesser.append(element)
            return quick_sort(lesser) + [pivot] + quick_sort(greater)
    展开全文
  • Python 插入排序

    万次阅读 2019-11-27 20:10:45
    Python 插入排序 基本原理: 把数组看作是已经排好序的,依次从剩余数组中取出待排序的数组,和前面已经排好序的数字做对比,如果遇到比它大的就插入到最后一个比它大的数字前面。 时间复杂度为O(n^2),n为数组的...

    Python 插入排序

    基本原理:

    把数组看作是已经排好序的,依次从剩余数组中取出待排序的数组,和前面已经排好序的数字做对比,如果遇到比它大的就插入到最后一个比它大的数字前面。

    时间复杂度为O(n^2),n为数组的个数。

    空间复杂度为O(1)。

    稳定算法。
    插入排序算法
    该图片来源于网络

    插入排序

    def insertion_sort(array):
        """
        插入排序
    
        :param array: 数组
        :return: 已排序的数组
        """
        for loop_index in range(1, len(array)):
            insertion_index = loop_index
            # 前一个大于后一个数字就要交换位置
            while insertion_index > 0 and array[insertion_index - 1] > array[insertion_index]:
                # 交换位置
                array[insertion_index - 1], array[insertion_index] = array[insertion_index], array[insertion_index - 1]
                # 继续往前循环
                insertion_index -= 1
        return array
    展开全文
  • python交换排序之冒泡排序
  • Python 冒泡排序

    万次阅读 2019-11-27 20:04:30
    Python 冒泡排序 基本原理: 相邻的元素比较,如果前一个元素大于后一个元素,则交换位置。 第一次遍历后,最大的元素会移动到最后的位置。 第二次遍历只需要比较前len(array)-i-1个元素,因为后面的元素肯定...
  • Python MongoDB 排序

    2019-07-01 20:08:39
    Python MongoDB 教程 Python MongoDB 入门 Python MongoDB 创建数据库 Python MongoDB 创建集合 Python MongoDB 插入文档 ... Python MongoDB 排序 Python MongoDB 删除文档 Python MongoDB 删除集合 ...
  • python选择排序之简单选择排序

    千次阅读 2019-01-21 15:24:41
    python选择排序之简单选择排序
  • Python 字典排序

    千次阅读 2015-05-20 12:54:07
    Python字典排序 注意排序后的字典会变成一个List 分为按照值和按照键来排序
  • python3.7排序函数

    千次阅读 2020-10-10 23:56:27
    python3.7排序函数
  • python排序函数

    千次阅读 2018-10-23 20:23:43
    python排序函数(sort)
  • Python数组排序

    2020-03-16 14:47:55
    适用于Python数组排序的方法有很多,这里只介绍一种目前比较推荐的排序方法,即 list.sort(key=None,reverse=False)。 函数的两个参数: key: 选定比较的元素,可以设置多个参数,依次比较,一般使用lambda表达式来...
  • python3排序

    2018-07-29 10:41:14
    sorted可以自定义排序方式 且是在原有数据基础上生成一个排序后的列表 b=sorted(a,key=lambda x:x[1]) #python3中用cmp会报错:TypeError: 'cmp' is an invalid keyword argument for this function print(b) ...
  • python 自定义排序

    万次阅读 2019-01-05 11:27:26
    我们都知道python中有两种排序的方法, 原地排序的x.sort(),和不改变原列表有返回值的sorted(x) 自定义排序函数 先不关心其实原地排序还是有返回值的排序,研究其内部的排序原理,其内部是根据什么排序的呢,...
  • Python实现指定排序函数进行排序

    千次阅读 2017-11-09 21:59:25
    程序说明: 利用冒泡排序、直接选择排序分别实现指定数组的升序...Python代码如下: #冒泡排序法实现升序排列 def bubble_sort(lists, sort = None): if not sort: count = len(lists) for i in range(0, count):
  • python进行排序与基数排序总结

    千次阅读 2017-02-02 20:29:54
    本文首先举例阐述了两种排序方法的操作步骤,然后列出了用python进行的实现过程,最后对桶式排序方法的优劣进行了简单总结。 一、桶排序排序一个数组[5,3,6,1,2,7,5,10]值都在1-10之间,建立10个桶:[0 0 0 0 0 0 ...
  • 使用Python对文件名进行排序

    千次阅读 2017-01-12 21:48:08
    使用Python对文件名进行排序 标签: 软件测试pythonlinux文件名排序 2016-05-11 10:20 673人阅读 评论(0) 收藏 举报  分类: 工作应用(13) IT--软件测试(42)  版权声明:本文为...
  • Python 降序排序

    千次阅读 2019-03-29 20:32:37
    Python降序排序有个小技巧,那就是如果是数组i排序可以直接使用(-i)代表降序排序 如def rank(x): s = -x[1]-x[2] a = -x[1] b = x[0] return s,a,b for li in (l1,l2,l3,l4): li = sorted(li,key=rank) ...
  • Python进行数据的排序和排名

    万次阅读 2019-05-16 16:35:11
    本文主要介绍Python使用pandas进行排序和排名操作,相关如下: 排序: 对数据集按照某一种方式进行排序(升序、降序或自定义顺序),是一种重要的内置运算。 排名: 对数据集按照某一种方式进行排名(从高到低、从...
  • Python文件名排序或文件排序问题

    万次阅读 多人点赞 2018-10-20 16:42:13
    在读取文件夹里的文件时,有时需要顺序读取文件,那python如何顺序读取文件呢(这些都是楼主...在python环境中提供两种排序方案(题主知道的): 库函数sorted()对字符串排序,它的对象是字符 函数sort(...
  • Python 中文排序

    千次阅读 2017-07-11 21:01:17
    最近项目需要对一些条目进行排序,这些条目都是汉字词组,使用Python传统的.sort,或sorted都失败了,原因很简单,汉字编码和字母编码根本就不是一回事,汉字的编码顺序并非按照拼音和笔画顺序大小排序。因此在排序时...
  • python列表排序

    千次阅读 2013-07-17 11:19:08
    python列表排序 简单记一下python中List的sort方法(或者sorted内建函数)的用法。 关键字: python列表排序 python字典排序 sorted List的元素可以是各种东西,字符串,字典,自己定义的类等。 sorted函数用法...
  • python对元素进行排序

    2020-04-23 14:47:15
    python对元素进行排序列表的排序方法sort()内置排序函数sorted()字符串元组列表借助operator模块的itemgetter排序面试题 本文采用版本python3.5 列表的排序方法sort() list.sort(key=None, reverse=False) key – ...
  • Python 排序

    千次阅读 2013-03-17 11:09:10
    2. Python字典按值排序、包含字典的列表按字典值排序的方法 3. Sorting Mini-HOW TO python列表排序  简单记一下python中List的sort方法(或者sorted内建函数)的用法。  关键字:  python列表
  • python dict 排序

    千次阅读 2017-10-26 22:56:11
    python 字典(dict)按键和值排序 投稿:jingxian 字体:[增加 减小] 类型:转载 时间:2016-06-28 我要评论 下面小编就为大家带来一篇python 字典(dict)按键和值排序。小编觉得挺不错的,现在就分享给大家,也...
  • python 字典排序

    千次阅读 2015-08-22 14:21:31
    引子 字典,形如 dic = {'a':1 , 'b':2 , 'c': 3},字典中的元素没有顺序,所以dic[0]是有语法错误的。...如何根据需要可以根据“键”或“键值”进行不同顺序的排序? 函数原型 sorted(dic,value,revers...
  • Python排序

    千次阅读 2015-02-17 00:26:46
    Python内置函数sorted可以对可迭代对象进行排序,其中有cmp和key两个参数,这两个参数对排序的效率有很大的影响。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 313,584
精华内容 125,433
关键字:

如何用python进行排序

python 订阅