8.3.2快速排序
2007-08-07 16:09
169 查看
#include "stdafx.h"
#include <iostream.h>
#include <malloc.h>
int const count=8;
typedef struct
typedef records list[count+1];
//此处没有使用书中的算法,书中的算法实现很繁索,且使用i,h,j,p,x一类的变量,使程序阅读更加吃力
//我实现的是严蔚敏版的数据结构中关于快速排序的算法,但书中的算法和这个思路是一致的,不过在于一些判断的时候方法有些不同,也没有这个算法巧妙
//快排算法最核心的思路就是,在一个排序数据中,取一个值,然后将小于它的数组项放在左面,将大于它的数组项放在它的右边,
//而这个值就是中值,然后分别再对分开的两部分再次调用排序算法,直至排序完成.
//r:排序的数组 low:排序区域中小的索引 high:排序区域中大的索引 return:分割两部分的中点索引
int Partition(list & r,int low,int high)
//快速排序
void QuickSort(list & r,int low,int high)
void printList(list r)
int main(int argc, char* argv[])
#include <iostream.h>
#include <malloc.h>
int const count=8;
typedef struct
typedef records list[count+1];
//此处没有使用书中的算法,书中的算法实现很繁索,且使用i,h,j,p,x一类的变量,使程序阅读更加吃力
//我实现的是严蔚敏版的数据结构中关于快速排序的算法,但书中的算法和这个思路是一致的,不过在于一些判断的时候方法有些不同,也没有这个算法巧妙
//快排算法最核心的思路就是,在一个排序数据中,取一个值,然后将小于它的数组项放在左面,将大于它的数组项放在它的右边,
//而这个值就是中值,然后分别再对分开的两部分再次调用排序算法,直至排序完成.
//r:排序的数组 low:排序区域中小的索引 high:排序区域中大的索引 return:分割两部分的中点索引
int Partition(list & r,int low,int high)
//快速排序
void QuickSort(list & r,int low,int high)
void printList(list r)
int main(int argc, char* argv[])
相关文章推荐
- 白话经典算法系列之六 快速排序 快速搞定
- 【算法设计与分析基础】14、快速排序
- 快速排序的改进
- 第十六周实践项目(1)—验证算法2快速排序
- Java排序算法总结(七):快速排序
- 第十六周 项目一 验证算法(4)快速排序
- 快速排序
- 笔试算法题(56):快速排序实现之非递归实现,最小k值选择(non-recursive version, Minimal Kth Selection of Quick Sort)
- 10.3交换排序(2)快速排序
- HDU 1157 Who's in the Middle (快速排序 or 任意排序)
- POJ_随机快速排序
- 随机快速排序
- 快速排序
- (4)快速排序
- 七大排序实测(计数、快速、归并、大堆、希尔、插入、选择)
- 对比快速排序,理解归并排序
- 快速排序的JAVA实现、优化和应用
- 数据结构之排序算法二:堆排序,快速排序,归并排序
- 常用排序算法(快速排序,冒泡排序,最大公约数,Fibonacci )【原创】
- PHP 版快速排序