基本排序
追小虫的蚂蚁
追小虫的蚂蚁
展开
-
快速排序
/* 分区操作 */ 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 · 501 阅读 · 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 · 399 阅读 · 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 · 456 阅读 · 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 · 395 阅读 · 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 · 416 阅读 · 0 评论