当前位置:首页 > 排序 > 正文
SSOJ1040十个数排序
4811+

题目大意:有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、插入排序:把数据分成有序序列和无序序列,左边有序,右边无序。一开始,左边第一个设为有序序列,因为一个肯定有序。右边的逐个与左边合并:先把需要合并的数拿出来,如果左边的比他的,就放到右边一个位置,直到左边那个不比他大为止,最后把当前数放进空位。

About

坚决不Copy代码!

本文标签:,,,,

SSOJ1040十个数排序:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!