青海西宁制作网站企业,做网站用什么语言编写,官方网站如何建立,安卓下载app快速排序是一种对冒泡排序的改进#xff0c;运用了二分的思想#xff0c;提高了效率#xff0c;元素的交换是跳跃式的#xff0c;更适合用在数组这样方便随机读取的顺序结构#xff0c;平均时间复杂度NlogN。#include #include /*快速排序*/void input(int*,int);void out…快速排序是一种对冒泡排序的改进运用了二分的思想提高了效率元素的交换是跳跃式的更适合用在数组这样方便随机读取的顺序结构平均时间复杂度NlogN。#include #include /*快速排序*/void input(int*,int);void output(int*,int);void order(int*,int,int);int main(void){int num;printf(请输入排序元素的个数:);scanf(%d,num);int nums[num];//这里用了自定义数组长度的方法新的标准支持这样用shuru(nums,num);//自定义函数实现数组元素的输入paixu(nums,0,num-1);//自定义函数实现快速排序包含了三个参数指向数组首地址的指针排序起始元素下标排序终止元素下标(目的是用递归方法实现)shuchu(nums,num);//自定义函数实现数组元素的输出return 0;}void input(int* nums,int num){int i;printf(输入元素\n);for(i0;i{scanf(%d,numsi);}}void output(int* nums,int num){int i;for(i0;i{printf(%d\t,nums[i]);}}void order(int* nums,int left,int right){if(leftright)//递归退出条件当要排序部分元素不超过1时结束递归return;int ileft,jright,temp;while(i!j)//定义两个变量分别从数组左右两边开始查找找出相对基准值(为了简化问题这里默认最左边的值为基准值)排序错误的一对元素{ //换句话就是说把基准值放中间调整元素使比基准值小的放左边比基准值大的放右边(默认从小到大)while(nums[j]nums[left]ij--;while(nums[i]nums[left]ii;if(i!j)//交换两边与基准值而言排序错误的元素{tempnums[i];nums[i]nums[j];nums[j]temp;}}tempnums[left];//交换将基准值归位nums[left]nums[i];nums[i]temp;paixu(nums,left,i-1);//对于数组左边和右边继续执行上述代码递归调用paixu(nums,i1,right);}