【算法】C语言实现的快速排序
2014-12-24 22:47
561 查看
#include<stdio.h> typedef int InfoType; #define N 10 //假设的文件长度,亟待排序的记录数目 typedef int KeyType; typedef struct { KeyType key; InfoType otherinfo; }RecType; typedef RecType SeqList[N + 1]; int Partitio(SeqList R, int i, int j); void main() { void QuickSort(SeqList R, int low, int high); int i; SeqList R; printf("请输入需要排序的10个数字:\n"); for(i=1; i<=N; i++) { scanf("%d", &R[i].key); } printf("排序前:\n"); for(i=1; i<=N; i++) { printf("%d ", R[i].key); } printf("\n"); QuickSort(R, 1, N); printf("排序后:\n"); for(i=1; i<=N; i++) { printf("%d ", R[i].key); } } void QuickSort(SeqList R, int low, int high) { int pivotpos; if(low < high) { pivotpos = Partition(R, low, high); QuickSort(R, low, pivotpos - 1); QuickSort(R, pivotpos + 1, high); } } int Partition(SeqList R, int i, int j) { RecType pivot = R[i]; while(i < j) { while(i<j && R[j].key >= pivot.key) { j--; } if(i < j) { R[i++] = R[j]; } while(i<j && R[i].key <= pivot.key) { i++; } if(i < j) { R[j--] = R[i]; } } R[i] = pivot; return i; }
相关文章推荐
- C语言实现数组快速排序(含对算法的详细解释)
- [算法练习]快速排序的C语言实现
- 算法导论之插入排序,选择排序,归并排序,冒泡排序,希尔排序,堆排序,快速排序的c语言实现
- C语言实现数组快速排序(含对算法的详细解释)
- 算法导论——关于快速排序的实现(c语言实现)
- C语言实现数组快速排序(含对算法的详细解释)
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
- 10个重要的算法C语言实现源代码
- C语言中实现 点在多边形内 算法
- 有关统计单词频率的算法c语言实现
- 10个重要的算法C语言实现源代码(8-9-10-----秦九昭和幂法和高斯塞德尔)
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔
- C语言中实现点在多边形内的算法
- 一个UUID生成算法的C语言实现 --- WIN32版本
- 10个重要的算法C语言实现源代码(其3--高斯列主元消去法)
- 10个重要的算法C语言实现源代码(其4和5---龙贝格和牛顿迭代)
- 数值计算方法与算法:C语言实现利用Gauss消元法解方程组
- 使用插入排序优化快速排序的算法实现
- 有关统计单词频率的算法c语言实现
- 10个重要的算法C语言实现源代码:拉格朗日,牛顿插值,高斯,龙贝格,牛顿迭代,牛顿-科特斯,雅克比,秦九昭,幂法,高斯塞德尔