算法导论-排序-快速排序

来源:互联网 发布:力学分析软件 编辑:程序博客网 时间:2024/06/14 03:36


直接用Dev-C++编译运行即可

以C89标准



/*** 快速排序* 空间复杂度:* 平均时间复杂度:O(nlgn)* 最差:O(n^2)* 最好:***/void sort(int *data,int left,int right){int i,j,t,temp;if(left > right){return;}temp = data[left];i = left;j = right;while(i != j){//先从左边开始找while(data[j] > temp && j > i){j--;}//再从右边开始找while(data[i] < temp && i < j){i++;}//交换数据if(i<j){t = data[i];data[i] = data[j];data[j] = t;}}//i=j 后基准数要归位if(data[left] > data[i]){data[left] = data[i];data[i] = temp;}//继续处理左边的sort(data,left,i-1);//继续处理右边的sort(data,i+1,right);}int main(){int i;int data[] = {5,1,6,8,9,65,87,888,99,74};sort(data,0,9);for (i = 0; i < 10; ++i){printf("%d\n", data[i]);}}


0 0