用冒泡排序法将键盘上输入的20个数排序后存入数组,然后输入一个新的数插入数组,保持原序不变输出这21个数(我写了一部分,但是插入新的数我不会)
for (int i = 0; i < 20; i++)
{
if (a[i] >= x) {
for (int j = 20; j >= i; j++)
a[j + 1] = a[j];
a[i] = x; }
}
插入新数据就变成了插入排序,
//假设a[N+1]中前N个数已经有序,
int i = 0;
//将待排序数据保存到临时变量中
int tmp = a[N];
//查找插入的位置
for(i = N-1 ; i >= 0; i++){
if(a[i] > tmp){
a[i+1] = a[i];
}else{
//找到了插入位置,插入位置为i+1
a[i+1] = tmp;
break;//跳出循环
}
}
我不写代码,只说思路。比方现在有一对人20,从高到底,已经排好了,但是又来了一个人,如果他比所有人高,那就让他站在最前面,如果他比所有人
低,那就让他站在最后面。但是偏偏这个人不高不低,现在你是那个排序的人,你当然是要把这个人领导队伍开头一个一个比较(队伍是由高到低),直到
发现他比比较的人低或者相同的时候,说明他应该站在这个人后面,然后你在吩咐后面的人,一人往后诺一个位子,这样这个队伍就变成21人的有序队列
了。