您的位置:首页 > 理论基础 > 数据结构算法

[数据结构与算法]排序算法(Python)

2015-12-07 14:42 549 查看
1、直接插入排序

给定一个数组后,从第二个元素开始,如果比第一个小,就跟他交换位置,否则不动;第三个元素如果比第二个小,把第三个跟第二个交换位置,在把第二个与第一个比较;.....

def buble(arr):
for i in range(0,len(arr)):
for j in range(i+1,len(arr)):
if arr[i] > arr[j]:
arr[i],arr[j] = arr[j],arr[i]
print arr


View Code
5、快速排序法

1)选择一个基准元素,通常选择第一个元素或者最后一个元素,

2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大。

3)此时基准元素在其排好序后的正确位置

4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。

def kp(arr,i,j):
if i < j:
base = kpgc(arr,i,j)
kpgc(arr,i,base )
kpgc(arr,base + 1,j)


def kpgc(arr,i,j):
base = arr[i]
while i < j:
while i < j and arr[j] >= base:
j-=1
while i < j and arr[j] < base:
arr[i] = arr[j]
i += 1
arr[j] = arr[i]
arr[i] = base
return i


快排过程中,如果j的值大于等与基准值,把j往前移动,如果小于基准值,把这个值给当前最小下标i处,i指针后移一位,再把值付给j的位置

6、归并排序



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐