【数据结构与算法】排序算法——快速排序

发布时间:2016-12-8 15:59:04 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"【数据结构与算法】排序算法——快速排序",主要涉及到【数据结构与算法】排序算法——快速排序方面的内容,对于【数据结构与算法】排序算法——快速排序感兴趣的同学可以参考一下。

快速排序算法,以升序为例操作系统:ubuntu编译软件:gcc结果截图:源代码:#include<stdio.h> void quickSort(int *,int,int); int findPoss(int *,int,int); int main() { int i; int arry[] = {8,9,0,-3,6,7,-11}; quickSort(arry,0,6); printf("After sorted:\n"); for(i=0;i<7;i++) printf("%d ",arry[i]); printf("\n"); return 0; } //快速排序函数,通过递归实现 void quickSort(int *a,int low,int high) { int pos; if(low < high) { pos = findPoss(a,low,high); quickSort(a,low,pos-1); quickSort(a,pos+1,high); } return ; } //该函数返回分割点数值所在的位置,a为待排序数组的首地址, low刚开始表示排序范围内的第一个元素的位置,逐渐向右移动, high刚开始表示排序范围内的最后一个位置,逐渐向左移动 int findPoss(int *a,int low,int high) { int val = a[low]; while(low < high) { while(low=val) high--; a[low] = a[high]; while(low<=val) low++; a[high] = a[low]; } //此时low=high a[low] = val; return low; }

上一篇:三十分钟掌握STL
下一篇:leetcode之Path Sum

相关文章

相关评论