您的位置:首页 > 其它

从零开始学算法——选择排序

2015-12-15 18:43 309 查看
选择排序思想:(假设升序)找到最小的数和数组中第一个数交换,然后找次小的数和第二个数交换,然后找第三小的数和第三个数交换。。。。。一直找到第n-1个小的数和第n-1个数交换,排序结束。注意:只需要找n-1个数,不需要找n个数。因为找到前n-1个数,那么第n个数自然就是最大的那一个。

非升序排序:

SELECTION-SORT(A)
for i=1 to A.length-1
max = A[i]
for j=i+1 to A.length
if A[j]>max
temp = max
max = A[j]
A[j] = temp
A[i] = max


最好情况运行时间:Θ(n²)

最坏情况运行时间:Θ(n²)

因为和原来数组排序无关,所以每次排序都会遍历剩余数组,所以最好与最坏情况时间复杂度都是Θ(n²)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法