python 排序与搜索
学习了一下排序与搜索,做一下总结。如果那里不对,请多指教。
排序算法:是一种能将一串数据依照特定顺序进行排列的一种算法。
稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的纪录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。
例如 (1,3)(2,3)(1,2)(2,1)进行排序
冒泡排序:
比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
# coding=utf-8 def shenxu(alist): for j in range(len(alist)-1,0,-1): #range(开始的数,结束的数,步长) len长度 for i in range(j): if alist[i] > alist[i+1]: print "变换前",i,alist, alist[i], alist[i+1] = alist[i+1], alist[i] #两个数交换 print "变换后",i,alist list1 = [1,9,8,2,3,7,4,6,0,5] shenxu(list1)
结果
冒泡改进了一次叫定向冒泡排序;感觉和冒泡一样就不多说了。
- 最坏时间复杂度:O(n2)
- 稳定性:稳定
选择排序:是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中 继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
(下次在继续写)
原文地址:https://www.cnblogs.com/AnhuaBi/p/9261287.html
时间: 2024-10-04 23:21:08