欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

1064-快速排序

发布时间:2023/12/1 编程问答 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 1064-快速排序 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

描述

 

给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中快速排序算法进行排序,并输出排序最后结果的相应序列。

 

输入

 

共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤100000,每个元素值范围为 [0,100000)

 

输出

 

一行,输出排序结果。

 

样例输入

7

48 36 68 72 12 48 2

样例输出

2 12 36 48 48 68 72

#include<stdio.h> #include<stdlib.h> int qkpass(int *r,int left,int right) {int i,j, x=r[left];i=left;j=right;while(i<j){while(i<j&&r[j]>=x)j--;if(i<j){r[i]=r[j];i++;}while(i<j&&r[i]<x)i++;if(i<j){r[j]=r[i];j--;}}r[i]=x;return i; }void qksort(int*r,int i,int j) {int p;if(i<j){p=qkpass(r,i,j);qksort(r,i,p-1);qksort(r,p+1,j);} } int main() {int i,*r,len;scanf("%d",&len);r=(int*)malloc(len*sizeof(int));for(i=0;i<len;i++)scanf("%d",&r[i]);qksort(r,0,len-1);for( i=0;i<len-1;i++)printf("%d ",r[i]);printf("%d\n",r[len-1]);free(r);return 0; }

  

转载于:https://www.cnblogs.com/Rosanna/p/3436699.html

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的1064-快速排序的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。