Let’s arrange a deck of cards. There are totally 36 cards of 4 suits(S, H, C, D) and 9 values (1, 2, … 9). For example, ‘eight of heart’ is represented by H8 and ‘one of diamonds’ is represented by D1.

Your task is to write a program which sorts a given set of cards in ascending order by their values using the Bubble Sort algorithms and the Selection Sort algorithm respectively. These algorithms should be based on the following pseudocode:

BubbleSort©
1 for i = 0 to C.length-1
2 for j = C.length-1 downto i+1
3 if C[j].value < C[j-1].value
4 swap C[j] and C[j-1]
SelectionSort©
1 for i = 0 to C.length-1
2 mini = i
3 for j = i to C.length-1
4 if C[j].value < C[mini].value
5 mini = j
6 swap C[i] and C[mini]
Note that, indices for array elements are based on 0-origin.

For each algorithm, report the stability of the output for the given input (instance). Here, ‘stability of the output’ means that: cards with the same value appear in the output in the same order as they do in the input (instance).

Input

The first line contains an integer N, the number of cards.

N cards are given in the following line. Each card is represented by two characters. Two consecutive cards are separated by a space character.

Output

In the first line, print the arranged cards provided by the Bubble Sort algorithm. Two consecutive cards should be separated by a space character.

In the second line, print the stability (“Stable” or “Not stable”) of this output.

In the third line, print the arranged cards provided by the Selection Sort algorithm. Two consecutive cards should be separated by a space character.

In the fourth line, print the stability (“Stable” or “Not stable”) of this output.

Constraints

1 ≤ N ≤ 36

Sample Input 1

5
H4 C9 S4 D2 C3

Sample Output 1

D2 C3 H4 S4 C9
Stable
D2 C3 S4 H4 C9
Not stable

Sample Input 2

2
S1 H1

Sample Output 2

S1 H1
Stable
S1 H1
Stable

code

/*^....0^ .1 ^1^..     011.^     1.0^ 1  ^    ^0.11 ^        ^..^0.           ^ 0^.0            1 .^.1             ^0 .........001^.1               1. .111100....01^00             ^   11^        ^1. .1^1.^                              ^0  0^.^                                 ^0..1.1                                   1..^1 .0                                     ^  ^^ 00.                                     ^^0.^1 ^ 0                                     ^^110.^0.   0 ^                                    ^^^10.01^^     010^   1 1                                   ^^^1110.10001  10 0   ^ 1.1                                   ^^^11111100^ 10 . 01   ^^  ^^                                   ^^^1111^1.^           ^^^10  10^ 0^                                             ^^111^^^0.1^       1....^11     0                                               ^^11^^^ 0..  ....1^   ^ ^1.     0^                                               ^11^^^ ^ 1 111^     ^ 0.10   00 11                                               ^^^^^   1 0           1.0^  ^0  ^0                                                ^^^^    0            0.0^  1.0  .^                                               ^^^^    1 1          .0^.^  ^^  0^                             ^1                ^^^^     0.         ^.11 ^      11                             1.                ^^^     ^ ^        ..^^..^      ^1                             ^.^               ^^^       .0       ^.00..^      ^0                              01               ^^^       ..      0..^1 ..        .1                             ^.^              ^^^       1 ^  ^0001^  1.        00                              0.             ^^^        ^.0 ^.1. 0^.        ^.^                             ^.^            ^^^         ..0.01 .^^.         .^                  1001        ^^            ^^^         . 1^. ^ ^.         11                0.    1         ^           ^^          0.0  ^.          0              ^0       1                   ^^^          0.0.^  1.          0^             0       .1                   ^^^          ...1   1.          00            .        .1                  ^^^           ..1      1.         ^.           0         .^                  ^^            ..0.     1.          .^          .         0                                  ..1     1.          01          .        .                                 ^ 0^.^     00          ^0          1.       ^                                 1 1.0      00           .            ^^^^^^                                   ..^      00           01                                                    ..1.       00           10                                                   1 ^^.1       00           ^.                                            ^^^    .1..        00            .1                                        1..01    ..1.1         00           1.                                       ..^      10^ 1^         00           ^.1                                      0 1      1.1           00            00                                       ^  1   ^.           00            ^.^                                        10^  ^^1.1           00             00                                              10^..^           1.             ^.                                               1.0 1            ^.              00                 00                            .^^            ^.              ^ 1                00   ^0000^     ^               011 0             ^.               00.0^              ^00000   1.00.1              11. 1              0               1^^0.01                      ^^^                01.^              ^                1   1^^                                       ^.^1 1                                                                              0...                                                                              1 ^1                                                                               1^ ^                                                                             .01                                                                             ^ 1..                                                          1.1            ^0.0^ 0                                                           1..01^^100000..0^1 1                                                            ^ 1 ^^1111^ ^^0 ^                                                             ^ 1      1000^.1                                                               ^.^     .   00..                                                                1.1    0.   01.                                                                  .    1.   .^1.                                                                 1    1.   ^0^ .                                                                 ^.1 00    01^.0                                                                  001.     .^*/
// Virtual_Judge —— Stable Sort Aizu - ALDS1_2_C.cpp created by VB_KoKing on 2019,04,28,18.
/* Procedural objectives:
Stable Sort Aizu - ALDS1_2_CVariables required by the program:1.变量n2.表示扑克牌的结构体,一个char类型,一个整型3.结构体数组Procedural thinking:Functions required by the program:*/
/* My dear Max said:
"I like you,
So the first bunch of sunshine I saw in the morning is you,
The first hurricane that passed through your ear is you,
The first star you see is also you.
The world I see is all your shadow."FIGHTING FOR OUR FUTURE!!!
*/
#include <iostream>
using namespace std;
struct card
{char suit;int num;
};void bubble(struct card A[],int n)
{for (int i = 0; i < n; i++) {for (int j = n-1; j > i; j--) {if (A[j].num<A[j-1].num){card t=A[j];A[j]=A[j-1];A[j-1]=t;}}}
}void selection(struct card A[],int n)
{for (int i = 0; i < n; i++) {int mini=i;for (int j = i; j < n; j++) {if (A[j].num<A[mini].num)mini=j;}card t=A[i];A[i]=A[mini];A[mini]=t;}
}void print(struct card A[],int n)
{for (int i = 0; i < n; i++) {cout << A[i].suit<<A[i].num;if (i != n - 1) cout << ' ';}cout<<endl;
}bool is_stable(struct card A[], struct card B[],int n)
{for (int i = 0; i < n; i++) {if (A[i].suit!=B[i].suit) return false;}return true;
}int main()
{int n;cin>>n;struct card cards1[36],cards2[36];for (int i = 0; i < n; i++) {cin>>cards1[i].suit>>cards1[i].num;cards2[i]=cards1[i];}bubble(cards1,n);selection(cards2,n);print(cards1,n);cout<<"Stable"<<endl;print(cards2,n);if (is_stable(cards1,cards2,n)) cout<<"Stable"<<endl;else cout<<"Not stable"<<endl;return 0;
}

Stable Sort Aizu - ALDS1_2_C相关推荐

  1. 《挑战程序设计竞赛》阅读笔记二 之 ALDS1_2_C Stable Sort

    <挑战程序设计竞赛>阅读笔记二 之 ALDS1_2_C Stable Sort 第三章 Sort I ALDS1_2_C Stable Sort 这道题目,就是为了说明 冒泡排序是稳定排序 ...

  2. Bubble Sort Aizu - ALDS1_2_A

    Write a program of the Bubble Sort algorithm which sorts a sequence A in ascending order. 编写一个气泡排序算法 ...

  3. Insertion Sort Aizu - ALDS1_1_A

    Write a program of the Insertion Sort algorithm which sorts a sequence A in ascending order. 编写插入排序算 ...

  4. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

  5. Python: How to Sort a List

    这两种方法使用起来差不多,以第一种为例进行讲解: 从Python2.4开始,sort方法有了三个可选的参数,Python Library Reference里是这样描述的 cmp: cmp speci ...

  6. numpy np.sort()函数(指定对某一轴进行排序,返回数组的排序副本)(成对数组不要用这个排,用哪个啥lexsort()或argsort()都行)

    指定对哪一层进行排序,如果需排序的是多维数组,特别是那种np.sort()貌似不太友好 from numpy\core\fromnumeric.py @array_function_dispatch( ...

  7. python lambda函数两个列表大小关系_python学习 -- operator.itemgetter(), list.sort/sorted 以及lambda函数...

    Python 中有非常方便高效的排序函数,下面主要介绍如何sort/sorted对list,dict进行排序. 1. 用list.sort /sorted 对list of tuples中第二个值进行 ...

  8. 关于stable_sort()和sort()的区别:

    你发现有sort和stable_sort,还有 partition 和stable_partition, 感到奇怪吧.其中的区别是,带有stable的函数可保证相等元素的原本相对次序在排序后保持不变. ...

  9. pythonsort参数_Python sort()函数有哪些参数?

    sort和sorted的参数 sort和sorted都有三个关键字参数:cmp.key和reverse.L.sort(cmp=None, key=None, reverse=False) -- sta ...

最新文章

  1. springCloud学习笔记系列(1)-负载均衡Ribbon
  2. warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
  3. iphone以旧换新活动_iPhone:我降价 1600 元!安卓:我有 5G
  4. java 数据库提交,java.sql.Statement向数据库提交的语句不可以是SQL语句的()。
  5. 如何解决复杂条件下的程序流的控制问题?
  6. Java:用POI读写Excel
  7. 【自动驾驶-Autonomous】自动驾驶定义
  8. config kubectl_Kubernetes(k8s)中文文档 kubectl config set-context_Kubernetes中文社区
  9. OpenCV添加中文(五)
  10. textarea限制每行可输入固定个数的字符
  11. iOS 开发之 - iOS6适配 - 导航栏按钮透明方法
  12. 英文.数字和中文混合的彩色验证码【JSP】
  13. Linux系统Posix异步IO接口(aio.h):aio_read,aio_write,aio_error
  14. 市场上血糖仪的测试原理和优缺点评价
  15. {过时·留存}MS Office文档
  16. Tcmalloc优化Mysql内存管理
  17. 图片的后缀是什么意思
  18. 再战港交所的高视医疗,近视小伙伴的福音?
  19. 微信小程序中好看的按钮样式(渐变色)、view的点击变色效果、按钮漂亮的圆角边框、解决hover设置失效
  20. redux react-redux简介

热门文章

  1. centeros 安装mysql
  2. 设计模式之职责链模式
  3. 《梦断代码》读书笔记
  4. [原创]修改oracle 数据库默认时间格式
  5. .net得到ip(引)
  6. axure类型app项目rp文件_Python编程快速上手实践项目--选择性拷贝指定类型文件到目的目录...
  7. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值
  8. typescript利用接口类型声明变量_TypeScript入门指南(基础篇)
  9. XAML 布局StackPanel
  10. centos7下安装storm步骤