快速排序 C语言版
来源:互联网 发布:电脑装机软件大全 编辑:程序博客网 时间:2024/05/21 22:54
#include<stdio.h>
void QuickSort(int s[],int l,int r);
int AdjustArray(int s[],int l,int r);
int main() {
int i,n,s[100];
printf("快速排序:\n");
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&s[i]);
}
QuickSort(s,0,n-1);
printf("排序结果:\n");
for(i=0;i<n;i++){
printf("%d ",s[i]);
}
printf("\n");
return 0;
}
void QuickSort(int s[],int l,int r) {
int i;
if(l<r){
i=AdjustArray(s,l,r);
QuickSort(s,l,i-1);
QuickSort(s,i+1,r);
}
}
int AdjustArray(int s[],int l,int r){
int i=l,j=r;
int x=s[l];
while(i<j){
while(i<j&&s[j]>=x){
j--;
}
if(i<j){
s[i]=s[j];
i++;
}
while(i<j&&s[i]<x){
i++;
}
if(i<j){
s[j]=s[i];
j--;
}
}
s[i]=x;
return i;
}
void QuickSort(int s[],int l,int r);
int AdjustArray(int s[],int l,int r);
int main() {
int i,n,s[100];
printf("快速排序:\n");
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&s[i]);
}
QuickSort(s,0,n-1);
printf("排序结果:\n");
for(i=0;i<n;i++){
printf("%d ",s[i]);
}
printf("\n");
return 0;
}
void QuickSort(int s[],int l,int r) {
int i;
if(l<r){
i=AdjustArray(s,l,r);
QuickSort(s,l,i-1);
QuickSort(s,i+1,r);
}
}
int AdjustArray(int s[],int l,int r){
int i=l,j=r;
int x=s[l];
while(i<j){
while(i<j&&s[j]>=x){
j--;
}
if(i<j){
s[i]=s[j];
i++;
}
while(i<j&&s[i]<x){
i++;
}
if(i<j){
s[j]=s[i];
j--;
}
}
s[i]=x;
return i;
}
0 0
- 快速排序C语言版
- 快速排序C语言版
- 快速排序C语言版
- 快速排序 C语言版
- 快速排序Qsort--C语言版
- 快速排序(c语言版)
- 快速排序(QuickSort)C语言版
- 快速排序-C语言版
- 快速排序(C语言版)
- 【排序】 快速排序代码-C语言版
- 经典排序——快速排序——C语言版
- 快速排序----Go语言版
- 快速排序第一个为基准c语言版
- 数据结构与算法(C语言版)__快速排序
- 排序算法 C语言版
- 归并排序 --- C语言版
- 归并排序C语言版
- 选择排序(C语言版)
- 暗色梦境
- struts2总结
- LLC串连谐振半桥变换器在LCD TV电源中的应用
- Android手势密码实现方案
- 猴子吃桃问题
- 快速排序 C语言版
- 关于Flash全屏的几种方法
- Ubuntu14.04安装 error:no such partition
- 希尔排序 C语言版
- android SharedPreferences的一般用法(存取清删)
- NP-Hard问题和NP-Complete问题
- 远程桌面无法使用剪切板的解决方法
- Servlet创建的时机及方式
- 用ue4构建第一个房屋