100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > c语言实现快速排序函数

c语言实现快速排序函数

时间:2023-11-04 01:16:28

相关推荐

c语言实现快速排序函数

c语言实现快速排序

众所周知,快速排序在排序算法中时间复杂度较为低,为O(nlogn),而选择,冒泡等排序的时间复杂度均为O(n^2)。

所以,现在我们来用c语言实现快速排序算法。

代码如下:

#include<stdio.h> int partation(int a[],int left,int right)//找出中值,并找出中值左右两边的数 {int tem=0;tem=a[left];//使临时值等于列表左边第一个数 while(left<right){while(left<right&&a[right]>=tem)//从左面找到比tem小的值 {right-=1;//往左走一步 }a[left]=a[right];//把右面的值写在左边的空位上 while(left<right&&a[left]<=tem){left+=1;//往右走一步 }a[right]=a[left];//把左面的值写在右面的空位上} a[left]=tem;//把tem 归位 return left;}int quit_sort(int a[],int left,int right){int mid=0;if(left<right){mid=partation(a,left,right);quit_sort(a,left,mid-1);//递归调用快排函数 quit_sort(a,mid+1,right);}}int main(){int a[100],n;printf("请输入需要排序的数字的数量:"); scanf("%d",&n); printf("输入若干个数字:");for(int i=0;i<n;i++){scanf("%d",&a[i]);}quit_sort(a,0,n-1); for(int j=0;j<n;j++){printf("%d ",a[j]);}return 0;}

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