在桥牌中人们通常使用的排序方法是,每次只考虑一张牌,将牌插入已经排了序的牌的适当位置中。在计算机应用中,为了插入新数据,先将较大的数据项一个个向右移动,然后将新数据插入空位中。
1 template <class Item> 2 void insertion(Item a[], int l, int r) 3 { 4 int i; 5 for (i = r; i > l; i--) compexch(a[i-1], a[i]); 6 for (i = l+2; i <= r; i++) 7 { 8 int j = i; Item v = a[i]; 9 while (v < a[j-1]) 10 {a[j] = a[j-1]; j--;} 11 a[j] = v; 12 } 13 }