python排序(选择, 插入)
1.选择排序
算法:
对于一组关键字{K1,K2,…,Kn}, 首先从K1,K2,…,Kn中选择最小值,假如它是 Kz,则将Kz与 K1对换;
然后从K2,K3,… ,Kn中选择最小值 Kz,再将Kz与K2对换。
如此进行选择和调换n-2趟,第(n-1)趟,从Kn-1、Kn中选择最小值 Kz将Kz与Kn-1对换,最后剩下的就是该序列中的最大值,一个由小到大的有序序列就这样形成
动态视频:http://v.youku.com/v_show/id_XMjU4NTY5NTcy.html?from=y1.2-1-95.3.6-2.1-1-1-5-0
def selectSort(array):
for i in range(0, len(array)):
min = i
for j in range(i+1, len(array)):
if array[j] < array[min]:
min = j
array[i], array[min] = array[min], array[i] def getRandomList():
array = []
for i in range(1, 10000):
array.append(i)
random.shuffle(array) return array if __name__ == '__main__':
array = getRandomList()
t1 = datetime.datetime.now()
# bubble_sort(array)
#quickSort(array, 0, len(array)-1)
selectSort(array)
t2 = datetime.datetime.now()
print t2 - t1
########
0:00:15.805000
[Finished in 16.0s]
2 插入排序
http://v.youku.com/v_show/id_XMzMyODk3NjI4.html?from=s1.8-1-1.2
def insertSort(array):
if len(array)< 2:
return array
for i in range(0, len(array)):
key = array[i]
j = i-1
while j >= 0 and array[j] > key:
array[j+1] = array[j]
j-=1
array[j+1] = key def getRandomList():
array = []
for i in range(1, 10000):
array.append(i)
random.shuffle(array) return array if __name__ == '__main__':
array = getRandomList()
t1 = datetime.datetime.now()
# bubble_sort(array)
#quickSort(array, 0, len(array)-1)
# selectSort(array)
insertSort(array)
t2 = datetime.datetime.now()
print array
print t2 - t1 ########
0:00:05.125000
[Finished in 5.6s]
python排序(选择, 插入)的更多相关文章
- python 排序 选择排序
算法思想: 首先从序列中选择一个最值,将这个元素和序列的首地址上的元素交换,这样就完成了一个元素的排序,接下来,重复上述过程,不断的从剩下的序列中选取最值,然后添加到有序部分的末尾(注意,这种添加是通 ...
- python排序算法实现(冒泡、选择、插入)
python排序算法实现(冒泡.选择.插入) python 从小到大排序 1.冒泡排序: O(n2) s=[3,4,2,5,1,9] #count = 0 for i in range(len(s)) ...
- python 数据结构与算法之排序(冒泡,选择,插入)
目录 数据结构与算法之排序(冒泡,选择,插入) 为什么学习数据结构与算法: 数据结构与算法: 算法: 数据结构 冒泡排序法 选择排序法 插入排序法 数据结构与算法之排序(冒泡,选择,插入) 为什么学习 ...
- C++学习(三十八)(C语言部分)之 排序(冒泡 选择 插入 快排)
算法是解决一类问题的方法排序算法 根据元素大小关系排序 从小到大 从大到小冒泡 选择 插入 快排希尔排序 归并排序 堆排序 冒泡排序 从头到尾比较 每一轮将最大的数沉底 或者最小数字上浮 选择排序 1 ...
- python排序(冒泡、直接选择、直接插入等)
冒泡排序 冒泡法:第一趟:相邻的两数相比,大的往下沉.最后一个元素是最大的. 第二趟:相邻的两数相比,大的往下沉.最后一个元素不用比. #冒泡排序 array = [1,5,6,2,9,4,3] de ...
- 史上最详细的C语言和Python的选择排序算法
未经同意,请勿转载!如有收货,请留一赞,不胜感激! 同时欢迎加入我们的qq交流群:326079727 话不多说上代码: C语言: //选择排序走起 //原理:吃透原理再去实现,选择排序也是类似于冒泡排 ...
- Python排序算法之选择排序定义与用法示例
Python排序算法之选择排序定义与用法示例 这篇文章主要介绍了Python排序算法之选择排序定义与用法,简单描述了选择排序的功能.原理,并结合实例形式分析了Python定义与使用选择排序的相关操作技 ...
- 44.python排序算法(冒泡+选择)
一,冒泡排序: 是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个,如果他们的排序错误就把他们交换过来. 冒泡排序是稳定的(所谓稳定性就是两个相同的元素不会交换位置) 冒泡排序算法的运作如下 ...
- Python排序算法之选择排序
选择排序 选择排序比较好理解,好像是在一堆大小不一的球中进行选择(以从小到大,先选最小球为例): 1. 选择一个基准球 2. 将基准球和余下的球进行一一比较,如果比基准球小,则进行交换 3. 第一轮过 ...
随机推荐
- jQuery EasyUI API 中文文档 - 面板(Panel)
Panel 面板 用$.fn.panel.defaults重写defaults. 用法示例 创建Panel 1. 经由标记创建Panel 从标记创建Panel更容易.把 'easyui-panel ...
- js文件代码未加载或者没有js效果
问题:在页面中js文件中的代码未加载或者没有任何效果. 原因: 成功引用了js文件,但无效果或者提示未加载该文档中的代码. 可能页面引用js文件的路径存在问题 解决: 重新检查你引用的js文件的路径是 ...
- wampserver php 设置时间
php.ini 查找date.timezone = Europe/Paris 修改成亚洲地区 date.timezone = Asia/Shanghai
- 03-树1. List Leaves (25)
Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. I ...
- hibernate中save,update,saveorupdate
save在添加用的时候 不会出现索引机制(即遍历目录 效率最高)update在修改时候要遍历 不存在则会异常saveorupdate是优先遍历 如果不存在则创建(效率最低)
- Arduino红外遥控系列教程2013——红外转码
教程三:红外转码教程——用电视遥控器取代机顶盒遥控器 前言前段时间看到了使用红外遥控的X-Bot机器人[链接],感觉很有意思.最近开始玩Arduino与红外,一方面打算将来用于BOXZ的之间的通讯控制 ...
- 【Linux CentOS 在虚拟机中XShell出现: (port 22): Connection failed.】
原因:没安装openssh-server组件!!!!!!!!!! 解决办法:yum install openssh-server 查看openssh-server是否启动: $:ps -ef |gre ...
- Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
继续并发专题~ FutureTask 有点类似Runnable,都可以通过Thread来启动,不过FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞. 由于:Fu ...
- 20个Linux命令及Linux终端的趣事
20个Linux命令及Linux终端的趣事 . 命令:sl (蒸汽机车) 你可能了解 ‘ls’ 命令,并经常使用它来查看文件夹的内容.但是,有些时候你可能会拼写成 ‘sl’ ,这时我们应该如何获得一些 ...
- codevs1219 骑士游历
题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马. 规定: 1)马只能走日字 2)马只能向右跳 问给定起点x1,y1和终点x2,y ...