像玩扑克抓牌那样排序 哈哈 例子很俗套? 但形象啊朋友
---C语言实现
#include <stdio.h> #include <stdlib.h> //遍历数组 void LoopForArr(int arr[],int length) { int count; if(arr == NULL || length <=0)return ; for(count = 0;count<length;count++) { printf("%d ",arr[count]); } printf("\n"); } //插入排序 void InsertionSort(int arr[],int length) { int count; int UnSortedHead;//未排序头 int SortedTail;//已排序尾 int count_in; int Temp; if(arr == NULL || length <=0)return ; SortedTail = 0; UnSortedHead = 1; while(UnSortedHead<length) { if(arr[UnSortedHead] < arr[SortedTail]) { count_in = SortedTail; Temp = arr[UnSortedHead]; while(count_in>=0) { if(Temp < arr[count_in]) { arr[count_in+1] = arr[count_in]; count_in--; } else break; arr[count_in+1] = Temp; } } UnSortedHead++; SortedTail++; } } int main() { int arr[] = {22,34,1,6,9,123,55,12,23}; InsertionSort(arr,sizeof(arr)/sizeof(arr[0])); LoopForArr(arr,sizeof(arr)/sizeof(arr[0])); system("pause"); return 0; }