题目大意:有10个100以内的数,从小到大将他们输出来。(数据范围比较小,本文将用此来介绍选择排序、冒泡排序和插入排序。)
题目描述
输入十个正整数,然后把这十个数按由小到大的顺序输出
输入
输入十个正整数
输出
输出十个正整数
样例输入
1 3 5 7 9 2 4 6 8 10
样例输出
1 2 3 4 5 6 7 8 9 10
解题思路
排序后输出,或者边排序边输出都可以。由于数据范围比较小,这里介绍3中O(n^2)的排序算法:选择排序、冒泡排序、插入排序。
程序实现
1、选择排序:分n次操作,第一次找到第一大、第二次找到第二大……找到第一大以后,放到a[1],找第二大时,只需要在a[2]到a[n]找。
2、冒泡排序:相邻大的放到后面,就像水里的泡泡冒上来一样。第一次,前1到n-1个数从左往右比较相邻的,左边大的就跟右边交换,这样,最大的就冒到最后面a[n];第二次,前1到n-2个数从左往右比较相邻的,左边大的就跟右边交换,这样,次大的就冒到次后面a[n-1]……(为什么第一次是n-1?因为第n-1个数跟右边相邻的比较,也就是a[n]比较,即所有数都比较了,后面也是如此。)
3、插入排序:把数据分成有序序列和无序序列,左边有序,右边无序。一开始,左边第一个设为有序序列,因为一个肯定有序。右边的逐个与左边合并:先把需要合并的数拿出来,如果左边的比他的,就放到右边一个位置,直到左边那个不比他大为止,最后把当前数放进空位。