Java面试题多思路解析--有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
来源:互联网 发布:软件制作平台 编辑:程序博客网 时间:2024/06/12 14:48
题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
思路分析:将一个数字插入按要求插入到一个数组中,怎样找到这个数字的的位置是关键。
针对这一题目,我整理了三种解决方案,以下是源代码:
一、冒泡排序的思路
因为已知数组是排好序的,这和冒泡排序进行最后轮排序是一样的。所以第一步,将已知数组和需要插入的数字放到一个新的数组里,且把需要插入的数字放到新的数组的 最后一位。
然后进行冒泡排序,将最后一个数字放到合适的位置。
二、插入排序的思路
这种思路,较为容易理解。拿着需要插入的数字,和原数组的每一个数字进行比较,满足大小条件,即可确定位置,然后插入数字。
需要注意的,最后如果被插入的数字大于原数组的所有的元素,那就把数字放到最后一位。
三、二分法的思路。
1、找出中间的那个值,判断插入值是否等于中值;
2、若等于,查找结束;若不等,如果二分查找的区间长度为1,则查找结束;
3、否则根据大小关系,继续按照1、2进行查找。
【关于返回值为什么是 mid+1 ,而不是mid 】
举个例字说明一下:
数组a[4] = {2, 4, 7, 9} a[0]=2, a[1]=4, a[2]=7, a[3]=9。
新数组b[5]={2, 4, 7, 9, 0}
若插入值为5, 返回值应为2
第一轮:low=0, high=4, mid=2, a[mid]=7 > 5
第二轮:low=0, high=2, mid=1, a[1]=4 < 5
第三轮:low=1, high=2, mid=1, 满足查找完成条件,退出
此时mid = 1, 故返回值为mid+1。
原文链接:http://blog.csdn.net/ygoodmanm/article/details/50804809点击打开链接
阅读全文
0 0
- Java面试题多思路解析--有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
- Java面试题多思路解析--有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
- Java-有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 【程序30】 ArraySort.java 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 五十道编程小题目 --- 30 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。 java
- 已有一个已经排好序的数组,输入一个数,要求按照原来排序的规律将它插入数组中
- 有一个已经排序号的数组。现在输入一个数,要求按原来的规律将它插入数组中。
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。没事写写程序,增加点点数。
- R 语言 连接MySQL的稳定性
- ES6关于Unicode的相关扩展
- kubernetes学习记录(6)——Guestbook Demo
- 如何理解swift中的delegate
- 【论文学习笔记】Joint Cascade Face Detection and Alignment
- Java面试题多思路解析--有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中
- 关于FPGA波特率和时钟周期是的换算问题
- 设计模式之装饰模式
- Java泛型中E、T、K、V等的含义
- linux phread_detach 用法
- 架构学习
- 什么是 JWT -- JSON WEB TOKEN
- 8中提升模型精度的方法
- 什么是aop