插入排序

插入排序可以在原数组之上进行操作,不需要分配新的数组存储排序结果。基本策略是从数组中的第二个元素开始,把左边的所有元素作为已排序元素,而右边的元素是等待排序的元素。

首先指定一个等待排序的元素,然后循环左侧的每个元素,如果比当前等待排序的元素大,就把它右移一格,否则把当前待排序元素插入当前被循环元素的右边。

以下是ruby代码:

 1 a = [5, 2, 4, 6, 1, 3]
 2 
 3 j = 1
 4 while j < a.length do
 5     key = a[j]
 6     i = j - 1
 7     while i >= 0 && a[i] > key do
 8         a[i + 1] = a[i]
 9         i = i - 1
10     end
11     a[i + 1] = key
12     j = j + 1
13 end
14 
15 puts a

 

posted on 2013-08-20 08:26  零度的火  阅读(188)  评论(0编辑  收藏  举报

导航