摘要:
选择排序的思路就是每第i迭代都找出序列中第i小的数,然后放在位置i上。对于一个长度为n的序列,迭代过程只要n - 1次,因为最后一个数必然是所有数中最大的。代码中用了一个min_val和min_index来保存当前迭代中找到的最小的数和它的索引,在过程中不断更新直到迭代完毕,最后和相应位置的元素交换。代码如下def selectionSort(L, n): i = 0 while(i < n - 1): min_val = L[i] min_index = i j = i ... 阅读全文
posted @ 2012-01-05 23:09
LeavingQ
阅读(129)
评论(0)
推荐(0)
摘要:
考试考完了,想安下心来看看算法。不知道自己在这条路上能走多远,但不管怎么样,加油吧,Leaving。首先是插入排序。它的过程算法导论比喻得很好,就如同打牌一样,手中有一些已经排好序的牌,然后从牌堆中抓一张新牌,从右到左依次比较,直到找到合适的位置放下。每次迭代的过程中,数组左边已排序好的数据长度逐渐增大,直到整个数组都排序好。左边已排好序的部分可以看成是手牌,而右边未排序的部分可以看做是牌堆,循环不变量在每次迭代过程中都得以保持。因为不想纠结于太多的语言细节,因此用Python来实现,下面是代码:def insertionSort(L, n): j = 1 while(j < n)... 阅读全文
posted @ 2012-01-05 22:47
LeavingQ
阅读(114)
评论(0)
推荐(0)
浙公网安备 33010602011771号