快速排序
来源:互联网 发布:上海大学网络教育平台 编辑:程序博客网 时间:2024/06/06 03:56
//快速排序
#include<stdio.h>
void quicksoft(int low, int high);
int a[101];
int main()
{
int i, n;
scanf("%d",&n);
for(i = 0; i < n; i++)
scanf("%d",&a[i]);
quicksoft(0,n-1);
for(i = 0; i < n; i++)
printf("%d ",a[i]);
}
void quicksoft(int low, int high)
{
int first, i, j, t;//first 基准点
first = a[low];
i = low;
j = high;
if(low > high)
return;
while(i!=j)
{
while(a[j] >= first && i < j)//右边的数比基准点大且i<j时让j的位置一直减
{
t = a[j];
a[j] = a[i];
a[i] = t;
}
}
a[low] = a[i];
a[i] = first;//把基准点的值赋给a[i] 此时i == j 则左边都是小于first 右边都是大于first
quicksoft(low,i-1);
quicksoft(i+1,high);
}
#include<stdio.h>
void quicksoft(int low, int high);
int a[101];
int main()
{
int i, n;
scanf("%d",&n);
for(i = 0; i < n; i++)
scanf("%d",&a[i]);
quicksoft(0,n-1);
for(i = 0; i < n; i++)
printf("%d ",a[i]);
}
void quicksoft(int low, int high)
{
int first, i, j, t;//first 基准点
first = a[low];
i = low;
j = high;
if(low > high)
return;
while(i!=j)
{
while(a[j] >= first && i < j)//右边的数比基准点大且i<j时让j的位置一直减
j--;
//a[j]出来的时候肯定是小于first
i++;
//a[i]出来的时候肯定大于first
//这是我们交换a[i]和a[j]
{
t = a[j];
a[j] = a[i];
a[i] = t;
}
}
a[low] = a[i];
a[i] = first;//把基准点的值赋给a[i] 此时i == j 则左边都是小于first 右边都是大于first
quicksoft(low,i-1);
quicksoft(i+1,high);
}
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- OpenCV安装:OpenCV 3.1.0 +VS2015 开发环境配置
- Atitit.android播放smb 网络邻居视频文件解决方案
- gcc编译C++程序
- C# String类
- 【程序人生】:一个技术骨干前妻的故事
- 快速排序
- 微信蓝牙BLE接入调试指引 硬件篇
- java7自动资源管理
- 一元云购系统接入短信功能问题汇总
- LeetCode OJ 4. Median of Two Sorted Arrays
- C++扬帆远航——17(递归函数求阶乘)
- 数据类型转换
- 【6】Linux-内存管理子系统
- android studio快捷键大全