基本排序
追小虫的蚂蚁
追小虫的蚂蚁
展开
-
快速排序
/* 分区操作 */int partition(int a[], int left, int right){ int tmp = a[left]; while(left < right) { while(left = tmp) right--; if(left < right) a[left++] = a[right]; while(left < right &原创 2013-05-23 22:59:48 · 513 阅读 · 0 评论 -
插入排序
/* */void insert_sort(int a[], int n){ int i, j, tmp; for(i = 1; i < n; i++) { tmp = a[i]; for(j = i -1; j >=0 && a[j] > tmp; j--) { a[j+1] = a[j]; } a[j+1] = tmp; }}原创 2013-05-24 15:43:48 · 404 阅读 · 0 评论 -
选择排序
/* */void select_sort(int a[], int n){ int i, j; int min, tmp; for(i = 0; i < n-1; i++) /* 选择的次数 */ { min = i; for(j = i+1; j < n; j++) /* 选择出最小的 */ { if(a[min] > a[j]) { min =原创 2013-05-24 15:49:54 · 465 阅读 · 0 评论 -
堆排序
void minHeapFixDown(int a[], int i, int n) /* 从第i个结点开始调整以i为根的树 */{ int j, tmp; tmp = a[i]; /* 把i抽出,挖坑 */ j = 2 * i + 1; /* 左孩子 */ while(j < n) { if(j+1 < n &&原创 2013-05-28 08:54:53 · 403 阅读 · 0 评论 -
希尔排序
/* */void shell_sort_0(int array[], int num){ int i, j, gap, tmp; gap = num / 2; while(gap > 0) { for(i=gap; i<num; i++) { j = i - gap; whil原创 2013-05-31 15:50:40 · 425 阅读 · 0 评论