总结:python关于一些基本排序算法的实现
来源:互联网 发布:sql语言 编辑:程序博客网 时间:2024/05/19 18:14
1 冒泡排序
从第一个数开始和相邻的数逐个比大小,如果比相邻的数大(升序),则调换位置,然后第二个数依次类推。
def Bubble(array): for j in range(len(array)-1): for i in range(len(array)-j-1): if array[i]>array[i+1]: array[i],array[i+1] = array[i+1],array[i] return arrayprint(Bubble([5,4,3,2,1]))
2 选择排序
每次把选择的第一个数和后面的数做对比,记下最小数的编号,把它放在最前面的位置。
def Select(array): smallest = 0 for j in range(len(array)): for i in range(j,len(array)): if array[i] < array[smallest]: #当前值 比之前选出来的最小值 还要小,那就把它换成最小值 smallest = i else: # print("smallest num is ",array[smallest]) array[j],array[smallest] = array[smallest],array[j] return array
a = [ 9,1,22,31,45,3,6,2,11 ]print(Select(a))
3 插入排序
从第二个数依次开始和左边的数做比较,把他们插到合适的位置。
def Insert(array): for index in range(1,len(array)): value = array[index] i = index-1 while i>=0: if value<array[i]: array[i],array[i+1] = value,array[i] i -= 1 return arrayprint(Insert([5,4,3,2,1]))
4 希尔排序
希尔排序的实质就是分组插入排序,插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率,但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。
def
5 快速排序
通过把列表分成两部分,通过交换位置,使右边的数据始终比左边的数大,然后采用二分思想不断重复,最终完成排序。
def Quick(array,i,j): if i>=j: return 3 low = i high = j k = array[low] while low<high: while low<high and array[high]>k: high -= 1 array[low] = array[high] array[high] = k while low<high and array[low]<=k: low += 1 array[high] = array[low] array[low] = k Quick(array,i,low-1) Quick(array,low+1,j)a = [5,1,3,6,7,9]Quick(a,0,5)print(a)
阅读全文
0 0
- 总结:python关于一些基本排序算法的实现
- 一些基本排序算法的实现
- 一些基本排序算法的实现(转载)
- 基本排序算法的Python实现
- 基本排序算法的Python实现
- 基本排序算法:Python实现
- 总结!python数据结构排序算法的实现
- 关于基本排序算法的简单研究总结(java 实现)
- 排序算法总结-python实现
- 对排序算法的一些总结(python版本)
- 关于一些排序算法的个人总结(初学)
- 一些排序算法的总结
- 排序算法的一些总结
- 排序算法的一些总结
- 总结八大排序算法的基本思想与代码实现
- 总结一些排序算法的原理和实现
- Python实现基本排序算法01
- 基本排序的Python实现
- SpringMVC学习(一)——SpringMVC介绍与入门
- Hackerrank Week of Code 32
- 有趣的CSS题目(2): 从条纹边框的实现谈盒子模型
- unix 标准输入读写
- Android 自定义listview,添加删除。
- 总结:python关于一些基本排序算法的实现
- Java面试题总结一
- 《TCP/IP详解 卷1:协议》 读书笔记 第二十章 TCP的成块数据流
- 字符排序
- C++中内存分配——静态存储区、栈和堆
- Ubuntu16.04+CUDA8.0+caffe配置
- 兰德HT3600(PDA)小知识
- html5开发windows8应用 windows8介绍
- 用javascript创建第一个windows8 metro应用