快速排序
2017-11-19 22:26
120 查看
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int a[101];
int n;
void quick_sort(int left,int right)
{
if(left>right) return;
int i,j,temp;
i=left;
j=right;
temp=a[left];
while(i!=j)
{
while(a[j]>=temp&&i<j)
j--;
while(a[i]<=temp&&i<j)
i++;
swap(a[i],a[j]);
}
a[left]=a[i];
a[i]=temp;
quick_sort(left,i-1);
quick_sort(i+1,right);
}
int main()
{
while(scanf("%d",&n)==1&&n)
{
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
quick_sort(0,n-1);
for(int i=0;i<n-1;i++)
cout<<a[i]<<" ";
cout<<a[n-1]<<endl;
}
return 0;
}
#include <cstdio>
#include <algorithm>
using namespace std;
int a[101];
int n;
void quick_sort(int left,int right)
{
if(left>right) return;
int i,j,temp;
i=left;
j=right;
temp=a[left];
while(i!=j)
{
while(a[j]>=temp&&i<j)
j--;
while(a[i]<=temp&&i<j)
i++;
swap(a[i],a[j]);
}
a[left]=a[i];
a[i]=temp;
quick_sort(left,i-1);
quick_sort(i+1,right);
}
int main()
{
while(scanf("%d",&n)==1&&n)
{
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
quick_sort(0,n-1);
for(int i=0;i<n-1;i++)
cout<<a[i]<<" ";
cout<<a[n-1]<<endl;
}
return 0;
}
相关文章推荐
- 快速排序
- 快速排序
- 算法导论读书笔记(7)快速排序
- 选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。
- 快速排序--陈惠南版
- 快速排序 的原理及其java实现(递归与非递归)
- 算法--排序(冒泡,选择,插入,快速)
- 快速排序的基本思想及Java实现
- 排序算法:快速排序
- 直接查找排序,归并排序,快速排序,计数排序 ,堆排 C++实现
- 第十六周 项目一 验证算法(4)快速排序
- 快速排序【记录一下代码】
- List<T>采用delegate快速实现排序、查找等操作
- 经典排序算法设计与分析(插入排序、冒泡排序、选择排序、shell排序、快速排序、堆排序、分配排序、基数排序、桶排序、归并排序)
- 递归算法经典之快速排序
- 快速排序的C语言代码实现
- (4)快速排序
- 快速排序
- 快速排序pascal程序
- 常用排序--冒泡/快速排序