黃偉榮的學習筆記

軟體的世界變化萬千,小小的我只能在這洪流奮發向上以求立足。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[算法练习]Insertion Sort 插入排序

Posted on 2007-09-06 01:24  黃偉榮  阅读(312)  评论(0编辑  收藏  举报
插入排序的工件机理与很多人打牌时,整理手中牌時的做法差不多,在开始摸牌时,我们的左手是空的,接着,一次仌桌上摸起一张牌,井将它插入到左手一把牌中的正确位置上,为了找到这张牌的正确位置,要将它与手中已有的每一张牌从右到左地进行比较,无论在什么时候,左手中的牌都是排好序的,而这些牌原先都是桌上那副牌里最顶上的一些牌。

伪代碼
1 for j =2 lenght[A]
2    do key = A[j]
3        i = j -1
4        while i >0 and A[i] > key
5            do A[i+1]=a[i]
6                i=i-1
7        A[i+1]=key

C++代碼
int values[] = {31,41,59,26,41,58};
    
int length = sizeof(values) / sizeof(int);
    
int key;
    
int i;
    
for (int j = 1; j < length; j++)
    
{
        key 
= values[j];
        i
=j-1;
        
while (i>=0 && values[i] > key)
        
{
            values[i
+1]=values[i];
            i 
= i-1;
        }
    
        values[i
+1]=key;
    }
        
    
return 0;