在一个有序数列中插入一个数重新进行排序
Posted 别跑昂,你
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一个有序数列中插入一个数重新进行排序相关的知识,希望对你有一定的参考价值。
题目:给定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占了位置。
如有不对,欢迎指正。
以上是关于在一个有序数列中插入一个数重新进行排序的主要内容,如果未能解决你的问题,请参考以下文章