#include<bits/stdc++.h> |
using namespace std; |
void InsertionSort( int a[], int n) |
{ |
for ( int i=1;i<n;i++) // 类似抓扑克牌排序 |
{ |
int now=a[i]; // 右手抓到一张扑克牌, 拿在左手上的牌总是排序好的 |
int j=i-1; |
for (;j>=0&&a[j]>now ;j--) // 将抓到的牌与手牌从右向左进行比较 |
a[j+1]=a[j]; // 如果该手牌比抓到的牌大,就将其右移 |
a[j+1]=now; // 直到该手牌比抓到的牌小(或二者相等),将抓到的牌插入到该手牌右边(相等元素的相对次序未变,所以插入排序是稳定的) |
} |
} |
int main () |
{ |
int N , i; |
cin>>N; |
int a[N]; |
for (i=0; i<N; i++) |
cin>>a[i]; |
InsertionSort(a,N); |
cout<<a[0]; |
for (i=1; i<N; i++) |
cout<< " " <<a[i]; |
return 0; |
} |
by: 发表于:2018-05-28 15:24:04 顶(5) | 踩(6) 回复
??
回复评论