初赛-数组综合运用(1)排序

第1题     冒泡排序(程序填空)

输入n个正整数,使用冒泡排序将这n个数,从小到大排好序。

输入格式

第一行一个正整数n.(1<=n<=10000)

第二行n个正整数ai。.(1<=ai<=1000000)

输出格式

从小到大的n个正整数,用空格隔开

输入/输出例子1

输入:

5

4 3 1 2 5

输出:

1 2 3 4 5

样例解释

初赛-数组综合运用(1)排序_第1张图片 

位置 我的作答
第1空 n
第2空 n-i
第3空 a[j]>a[j+1]

 

 

选择排序(程序填空)

选择排序(由小到大)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。

n个数的直接选择排序可经过n-1趟直接选择排序得到有序结果:

1. 初始状态:无序区为R[0..n-1],有序区为空。

2. 第1趟排序:在无序区R[0..n-1]中查找并记录最小值的下标k,将R[k]与无序区的第1个数R[0]交换,使R[0..0]和R[1..n-1]分别变为增加1个数的新有序区和减少1个数的新无序区。

3. 重复在无序区中查找最小值,并与无序区第一个数交换。不断增加有序区,减少无序区。最终经过n-1趟,使得有序区长度n-1,无序区长度1(无序区还叫无序吗)选择排序结束。

为了查看排序过程的方便,请编程输出每趟选排后的所有数据。

输入格式

第一行一个数n;表示待排序正整数的个数。

第二行,n个正整数,中间用空格隔开。

n < 2000

输出格式

共n-1行;

第i行,n个正整数,表示第i趟选排后的所有数据位置。中间用空格隔开。

输入/输出例子1

输入:

8

23 5 7 3 65 8 25 72

输出:

3 5 7 23 65 8 25 72

3 5 7 23 65 8 25 72

3 5 7 23 65 8 25 72

3 5 7 8 65 23 25 72

3 5 7 8 23 65 25 72

3 5 7 8 23 25 65 72

3 5 7 8 23 25 65 72

样例解释

初赛-数组综合运用(1)排序_第2张图片

位置 我的作答
第1空 j
第2空 k
第3空 arr[i],arr[k]

 

第3题     计数排序(程序填空)

n件物品,依次给出它们的重量,使用计数排序,按照重量从大到小依次输出物品的重量。

输入格式

第一行,一个整数n,1<=n<=50000。
第二行,有N个用空格隔开的正整数表示重量,每个正整数范围[1,1000000]。

输出格式

一行,从大到小排序后的重量。

输入/输出例子1

输入:

5

20 40 32 67 20

输出:

67 40 32 20 20

样例解释

初赛-数组综合运用(1)排序_第3张图片
位置 我的作答
第1空 c[x]++
第2空 c[i]
第3空 i

 

第4题     插入排序(程序填空)

XX小学的一年级二班班主任准备带学生外出春游,但是小同学们排的队伍高矮不齐。老师为了在前面可以一眼看到每一位同学,于是她决定按照从矮到高排列队伍。这位老师想到了插入排序,于是就想从前到后,将每一位同学插入到前面已经排列好的区域中的合适位置。好像有点复杂,你来帮她一下吧!从前到后,输出每一位小同学应该插入的位置(最前面同学的位置为0)。例如有如下12位同学身高分别为:

3 6 1 4 9 8 2 34 6 4 67 5 

0 1 0 2 4 4 1  7 5 4 10 5

先往前插入第一个小同学,只有他一个当然是0;

第二个同学,向前找合适插入位置,好像不用动的哦,就插在1;

第三个同学,比6矮,也比3矮,应该插在0;

……

输入格式

第一行一个N

第二行N个正整数(不超过int类型),中间用空格隔开。

 

n<=20000

输出格式

输出只有一行,N个整数,从前到后表示每一位小同学合适的插入的位置,中间用空格隔开。

输入/输出例子1

输入:

12

3 6 1 4 9 8 2 34 6 4 67 5

输出:

0 1 0 2 4 4 1 7 5 4 10 5

样例解释

初赛-数组综合运用(1)排序_第4张图片

位置 我的作答
第1空 t
第2空 t
第3空 j+1

 

 

你可能感兴趣的:(初赛,人工智能)