作者:LAMP小白 点击:1865 发布日期:2012-10-04 21:36:00 返回列表
改良的插入排序
核心代码只有3行,简单有效,但是性能一般
#includevoid swap(int,int); void arrDisplay(void); int arr[5] = {3,1,7,2,4}; int main(void) { int count = sizeof(arr) / sizeof(int); int i,j; for(i = 1; i < count; i++) for(j = i; j > 0 mio_mio_ arr[j-1] > arr[j]; j--) swap(j-1,j); arrDisplay(); return 0; } void swap(int a, int b) { int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } void arrDisplay() { int i = 0; for(i; i < 5; i++) printf("%d,", arr[i]); }
改良的快速排序
#includevoid swap(int, int); void qsort1(int, int); void arrDisplay(void); int arr[5] = {3,1,8,5,2}; int main(void) { int count = sizeof(arr) / sizeof(int); arrDisplay(); qsort1(0,count-1); arrDisplay(); return 0; } void qsort1(int left, int right) { if(left >= right) return; //if left eq right return empty int m,i,j; m = left; for(i = left + 1; i <= right; i++) //left+1 can out the m val if(arr[i] < arr[left]) swap(++m, i); swap(left, m); qsort1(left, m-1); qsort1(m+1,right); } void swap(int a, int b) { int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } void arrDisplay() { int i = 0; for(i; i < 5; i++) printf("%d,", arr[i]); printf("n"); }
上一篇:mysql配简单主从 下一篇:快递查询API