快速排序的实现
来源:互联网 发布:淘宝免费下载 编辑:程序博客网 时间:2024/06/05 12:09
#include <stdio.h>
int a[12]={1,20,10,30,50,8,9,100,99,12};
int quick(int left,int right);
int main()
{
int i = 0;
printf("原顺序:");
for(i = 0;i < 10;i++){
printf("%d ",a[i]);
}
printf("\n");
printf("快排序:");
quick(0,9);
for(i = 0;i < 10;i++){
printf("%d ",a[i]);
}
printf("\n");
}
int quick(int left,int right)
{
int l,r,t;
int temp;
if(left > right){
return;
}
l = left;
r = right;
temp = a[left];
while(l != r){
while(a[r] >= temp && l < r){
r--;
}
while(a[l] <= temp && l < r){
l++;
}
if(l < r){
t = a[l];
a[l] = a[r];
a[r] = t;
}
}
a[left] = a[l];
a[l] = temp;
quick(left,l - 1);
quick(l + 1,right);
}
int a[12]={1,20,10,30,50,8,9,100,99,12};
int quick(int left,int right);
int main()
{
int i = 0;
printf("原顺序:");
for(i = 0;i < 10;i++){
printf("%d ",a[i]);
}
printf("\n");
printf("快排序:");
quick(0,9);
for(i = 0;i < 10;i++){
printf("%d ",a[i]);
}
printf("\n");
}
int quick(int left,int right)
{
int l,r,t;
int temp;
if(left > right){
return;
}
l = left;
r = right;
temp = a[left];
while(l != r){
while(a[r] >= temp && l < r){
r--;
}
while(a[l] <= temp && l < r){
l++;
}
if(l < r){
t = a[l];
a[l] = a[r];
a[r] = t;
}
}
a[left] = a[l];
a[l] = temp;
quick(left,l - 1);
quick(l + 1,right);
}
阅读全文
0 0
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 快速排序的实现
- 【Java进阶-Java动态代理与AOP】
- 30分钟掌握ES6/ES2015核心内容(下)
- 征集峰值QPS/QPS/PV/UV/服务器数量/并发数/吐吞量/响应时间计算公式?
- Java集合 List—add size get contains addAll index indexOf
- 图像处理中的模板匹配c++实现
- 快速排序的实现
- python3 centos下安装tkinter
- 0816-java集合接口
- [设计模式](九):过滤器模式(Filter)及Kotlin的Filter模式
- zookeeper单机版安装
- Rman中各种format参数说明
- 迭代器
- 网易编程题 等差数列
- 简述Java类的“初始化”