Welcome

首页 / 软件开发 / 数据结构与算法 / 排序算法之快速排序

排序算法之快速排序2015-09-08快速排序算法,以升序为例

操作系统: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:
");for(i=0;i<7;i++)printf("%d ",arry[i]);printf("
");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=higha[low] = val;return low;}

作者:csdn博客 兰亭风雨