在一个有序数列中插入一个数重新进行排序

人生难得几回搏,此时不搏待何时。这篇文章主要讲述在一个有序数列中插入一个数重新进行排序相关的知识,希望能为你提供帮助。
题目:给定9个有序的数列,从中插入一个数,然后重新按从小到大(或者从大到小进行)排序。
原理:通过挪位置数字进行插入,先上代码:

首先9个数字排好序放入一个数组中,通过输入要插入的数,将其和数组中的数进行比较,然后确定插入数应该在数组的哪个位置,如此即可先定位;
后面的for循环即是挪位置的具体代码实现;
误区:1.注意if语句内要放一个break跳出for循环,不然会一直循环下去,直到p=9,这样结果也会出现误差
2.arr[p]=x,这句代码要放在外面,如果放在了里面会导致要插入的那个数位置还没给你挪出来,就直接被替换掉了,这样会少了原本的一个数,然后差入的数打印两个出来
3.注意数组越界问题




再给个进阶点的:即实现任意输入9个数排序后再插入一个数进行排序(冒泡排序/选择排序+上面代码),有兴趣可以写一下:

这个代码要注意一个问题:就是数组初始化是10个数的,而实际输入只有9个数(有一个数是后面要插入的,加起来是10个),这样arr[9]=0,我们不能让这个数参与那9个数的排序,不然0就会被挤到第一个数去,然后原本9个数的最大数在数组的第10个数位置,这样后面我们插入一个数进去排序的时候,就会把原本的10个数挤出去,导致打印的结果出错,其实就是0占了位置。


如有不对,欢迎指正。
【在一个有序数列中插入一个数重新进行排序】


    推荐阅读