标签:
先说一下比较排序的定义吧:
就是除了赋值操作外, 只存在小于‘<’和大于‘>’这两种运算符是仅有的允许对
输入数据进行的操作。
1 #include 2 3 typedef int ElementType; 4 void InsertionSort(ElementType A[], int N); 5 6 void main(void) 7 { 8 int i; 9 int unordered[] = {4, 5, 2, 1, 0}; 10 InsertionSort(unordered, 5); 11 for(i = 0; i < 5; i++) 12 { 13 printf("%d\n", unordered[i]); 14 } 15 } 16 17 //双重循环,时间复杂度为T(N)=O(N^2) 18 void InsertionSort(ElementType A[], int N) 19 { 20 int j, p; 21 22 ElementType Tmp; 23 for(p = 1; p < N; p++) 24 { 25 Tmp = A[p]; 26 for(j = p; j > 0 && A[j - 1] > Tmp; j--) 27 { 28 A[j] = A[j - 1]; 29 } 30 A[j] = Tmp; 31 } 32 }
排序数组 5, 2, 4, 6, 1, 3 的过程:
标签:
原文地址:http://www.cnblogs.com/liupengblog/p/4648983.html