#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 110;
void print(int a[],int n)
{
for(int i=0;i<n;i++) cout << a[i] << '\t';
cout << endl;
}
void sort1(int a[],int n)
{
for(int i=0;i<n;i++)
{
int k=i;
for(int j=i+1;j<n;j++) if(a[k]>a[j]) k=j;
if(k!=i) swap(a[i],a[k]);
}
}
void sort2(int a[],int n)
{
for(int i=n-1;i>=1;i--)
{
for(int j=0;j<i;j++) if(a[j]>a[j+1]) swap(a[j],a[j+1]);
}
}
void sort3(int a[],int n)//桶排序0-100
{
int b[101];
for(int i=0;i<101;i++) b[i]=0;
for(int i=0;i<n;i++) b[a[i]]++;
for(int i=0;i<101;i++)
{
while(b[i])
{
cout << i << '\t';
b[i]--;
}
}
}
void sort4(int a[],int n)
{
for(int i=0;i<n;i++)
{
int j;
for(j=i-1;j>=0;j--) if(a[j]<a[i]) break;
int temp = a[i];
if(j!=i-1)
{
for(int k=i-1;k>j;k--) a[k+1]=a[k];
a[j+1]=temp;
}
}
}
void sort5(int a[],int n,int L,int R)
{
int i=L,j=R,mid=a[(L+R)/2];
while(i<=j)
{
while(a[i]<mid) i++;
while(a[j]>mid) j--;
if(i<=j) swap(a[i++],a[j--]);
}
if(L<j) sort5(L,j);
if(i<R) sort5(i,R);
}
int main(void)
{
freopen("D:\\1.txt","r",stdin);
int a[maxn],n;
cin >> n;
for(int i=0;i<n;i++) cin >> a[i];
print(a,n);
//sort1(a,n);
//sort2(a,n);
//sort3(a,n);
//sort4(a,n);
sort5(a,n,0,n-1);
print(a,n);
return 0;
}
2019-03-02 排序
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 使用.简介|关于笔记的建议(二)排序2019.02.09 许多笔记内容是相关的,因为命名却在相隔很远的"地方"。在...
- 整理自高教版《全国计算机等级考试二级教程——公共基础知识》和人邮版《全国计算机等级考试教程 二级公共基础知识》 查...