Aizu ALDS1_2_C Stable Sort(稳定排序)
2016-11-29 13:20
369 查看
#include <bits/stdc++.h> #define _ ios_base::sync_with_stdio(0);cin.tie(0); #define INF 0x3f3f3f3f #define eps 1e-5 typedef long long LL; const double pi = acos(-1.0); const long long mod = 25 * 1E8; using namespace std; int N; struct data { char s; int n; }a[105],a1[105],a2[105]; void BubbleSort(int N) { for(int i = 0;i < N;i++) for(int j = N - 1;j >= i + 1;j--) if(a1[j].n < a1[j - 1].n) swap(a1[j].s,a1[j - 1].s),swap(a1[j].n,a1[j - 1].n); for(int i = 0;i < N - 1;i++) printf("%c%d ",a1[i].s,a1[i].n); printf("%c%d\n",a1[N - 1].s,a1[N - 1].n); } void SelectionSort(int N) { for(int i = 0;i < N;i++) { int mini = i; for(int j = i;j < N;j++) if(a2[j].n < a2[mini].n) mini = j; if(i != mini) swap(a2[i].n,a2[mini].n),swap(a2[i].s,a2[mini].s); } for(int i = 0;i < N - 1;i++) printf("%c%d ",a2[i].s,a2[i].n); printf("%c%d\n",a2[N - 1].s,a2[N - 1].n); } bool cmp() { for(int i = 0;i < N;i++) if(a1[i].s != a2[i].s) return 0; return 1; } int main() { //freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); ios_base::sync_with_stdio(0);cin.tie(0); cin >> N; for(int i = 0;i < N;i++) { cin >> a[i].s >> a[i].n; a1[i].s = a2[i].s = a[i].s; a1[i].n = a2[i].n = a[i].n; } BubbleSort(N); puts("Stable"); SelectionSort(N); if(cmp()) puts("Stable"); else puts("Not stable"); return 0; }
相关文章推荐
- STL stable_sort 稳定排序
- 【stable_sort稳定排序】
- 第三章 ALDS1_2_C:Stable Sort 稳定排序
- stable_sort稳定排序
- hdu 1872 稳定排序(stable_sort)
- STL stable_sort 稳定排序
- stable_sort()
- stable_sort
- C++排序之stable_sort()的方法
- 泛型算法sort,fill,fill—n,stable—sort,accumulate
- C ++ sort()与stable_sort()
- 【HDU1872】稳定排序(sort)
- algorithm库介绍之---- stable_sort()方法 与 sort()方法
- DNA Sorting(stable_sort)
- stl-stable_sort源码学习笔记
- stable_sort
- C++标准库---sort()&stable_sort
- c++中stable_sort 和sort()的区别及应用
- stable_sort() 和 sort() 的区别
- Aizu ALDS1_1_A Insertion Sort(插入排序)