6-1 sdut-C语言实验-递归函数之快速排序

简介: 6-1 sdut-C语言实验-递归函数之快速排序

6-1 sdut-C语言实验-递归函数之快速排序

分数 14

全屏浏览

切换布局

作者 maggie

单位 山东理工大学

本题要求实现一个快速排序函数。

给定 N ( N<= 100000) 个 int 范围内的整数,要求用快速排序对数据进行升序排列。

函数接口定义:

void Quick_sort (int array[], int l, int r);


其中 array[] 、 l 、r 都是用户传入的参数。 array[] 是需要排序的数组,数组长度不会超过100000; l 和 r 是需要进行排序的左端点和右端点。


裁判测试程序样例:

#include <stdio.h> void Quick_sort (int array[], int l, int r); int main() { int N, array[100000]; scanf("%d", &N); for(int i=0; i<N; i++) { scanf("%d", &array[i]); } Quick_sort(array, 0, N-1); for(int i=0; i<N; i++) { printf("%d ", array[i]); } printf("\n"); return 0; } /* 你的代码将被嵌在这里 */


输入样例:

1. 8
2. 49 38 65 97 76 13 27 49

输出样例:

在这里给出相应的输出。例如:

13 27 38 49 49 65 76 97

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

void Quick_sort (int array[], int l, int r)
{
 int i=l;
 int j=r;
 int t=array[l];
 if(l>=r)
  return 0;
 while(i<j)
 {
    if(i<j&&t<=array[j])
    {
       j--;
    }
  array[i]=array[j];
  if(i<j&&t>=array[i])
  {i++;
  }
  array[j]=array[i];//max;
  
 }
 array[i]=t;
 Quick_sort (array,l,i-1);
 Quick_sort (array,i+1,r);
 
}
目录
相关文章
|
BI
7-6 sdut-C语言实验-最长上升子序列
7-6 sdut-C语言实验-最长上升子序列
165 1
|
Java 开发工具
JDK、JRE、JVM三者之间的关系
JDK、JRE、JVM三者之间的关系
206 0
JDK、JRE、JVM三者之间的关系
|
BI
7-7 sdut-C语言实验-上升子序列
7-7 sdut-C语言实验-上升子序列
134 0
|
BI
7-6 sdut-C语言实验-最长上升子序列的和
7-6 sdut-C语言实验-最长上升子序列的和
107 2
7-5 sdut-C语言实验-最长公共子序列
7-5 sdut-C语言实验-最长公共子序列
211 0
|
11月前
|
Java Maven Spring
SpringBoot项目创建失败或无法启动,启动报错时的常见问题及解决方案
文章列举了在IDEA中创建Spring Boot项目时可能遇到的常见问题及其解决方案,如项目不被识别为Maven项目、依赖未找到或报红、JDK版本不一致和POM文件中的Jar包下载失败等问题。
2865 0
SpringBoot项目创建失败或无法启动,启动报错时的常见问题及解决方案
|
前端开发 对象存储 数据安全/隐私保护
阿里云前端直传has been blocked by CORS policy: Response to preflight request doesn‘t pass access control
阿里云前端直传has been blocked by CORS policy: Response to preflight request doesn‘t pass access control
1255 2
7-1 sdut-C语言实验-计算组合数
7-1 sdut-C语言实验-计算组合数
131 0
递推 4----7-4 sdut-C语言实验-马拦过河卒
递推 4----7-4 sdut-C语言实验-马拦过河卒
188 0
7-4 sdut-C语言实验-拆线分割平面
7-4 sdut-C语言实验-拆线分割平面
90 0