100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 再次学习快速排序(C语言)

再次学习快速排序(C语言)

时间:2022-06-19 23:11:56

相关推荐

再次学习快速排序(C语言)

#include <stdio.h> void QuickSort1(int *s,int left,int right){int i,j,t,pivot;if(left>right)return;if(left<right){pivot = s[left];//基准数 i=left;j=right;while(i!=j){while(i<j &&s[j]>=pivot) j--; //从右向左找第一个比基准数小的数 while(i<j &&s[i]<=pivot) i++;//从左向右找第一个比基准数大的数 if(i<j)//交换两数 {t=s[i];s[i]=s[j];s[j]=t;}}s[left] = s[i];//基准数归位 s[i] = pivot;QuickSort1(s,left,i-1);QuickSort1(s,i+1,right);}}void QuickSort2(int *s,int left,int right){int i,j,pivot;if(left>right)return;if(left<right){pivot = s[left];//基准数 i=left;j=right;while(i!=j){while(i<j &&s[j]>=pivot) j--; //从右向左找第一个比基准数小的数 if(i<j){s[i]=s[j];i++;}while(i<j &&s[i]<=pivot) i++;//从左向右找第一个比基准数大的数 if(i<j){s[j]=s[i];j--;}}s[i] = pivot;//基准数归位 QuickSort2(s,left,i-1);QuickSort2(s,i+1,right);}}int main(){int a[] = {8,6,12,10,2,7,3,15,9,20};//QuickSort1(a,0,9);QuickSort1(a,0,9);int i=0;for(;i<10;i++)printf("%d ",a[i]); return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。