交换类排序-快速排序
2014-04-16 17:57
106 查看
#include<stdio.h> #define N 20 int main() { void QickSort(int *,int ,int); int i,a ; printf("Enter twenty numbers:\n"); for(i=0;i<N;i++) scanf("%d",a+i); QickSort(a,0,N-1); for(i=0;i<N;i++) printf("%d ",a[i]); return 0; } void QickSort(int *a,int l,int r)/*对从a[l]到a[r]的元素进行排序*/ { int temp,i=l,j=r; if(l<r) { temp=a[l]; /*这个排序完成了一趟排序,即将数组中小于temp的元素放在左边,大于temp的元素放在右边*/ while(i!=j) { while(j>i&&a[j]>temp)/*从右向左扫描找到一个小于temp的元素*/ --j; if(i<j) { a[i]=a[j];/*放在temp左边*/ ++i; } while(i<j&&a[i]<temp)/*从左往右扫描,找到一个大于temp的元素*/ ++i; if(i<j) { a[j]=a[i];/*放在temp右边*/ --j; } } a[i]=temp;/*将temp放在最终位置*/ QickSort(a,l,i-1); QickSort(a,i+1,r); } }
相关文章推荐
- 排序-交换类排序-快速排序、归并排序、冒泡排序
- 交换类排序之快速排序
- 排序算法大集锦_交换类——快速排序
- 数据结构与算法学习记录:快速排序 (转)
- 对c语言系统库函数、堆排序、希尔排序、折半插入排序、快速排序消耗时间的比较
- 第十六周项目一----快速排序
- 分享两遍不错的文章,有关快速排序,用JS写的,有需要的朋友可以参考一下
- 快速排序
- 快速排序
- 经典快速排序,linux纯C实现。注意swap方法,并且这个算法还需再敲写15篇。
- 快速排序学习 以数组中间值为轴
- 排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
- 快速排序、求旋转数组最小数字
- 快速排序
- 快速排序【c++】
- 快速排序
- 7.交换排序——快速排序
- 【重新上本科】快速排序【中】
- 归并排序学习总结,递归法&&插入排序&&冒泡排序&&选择排序&&快速排序
- 第十六周项目1-验证算法(4)快速排序