Java例题_30 在已经排好序的数组中插入值
1 /*30 【程序 30 插入数字】
2 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
3 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的
4 数,依次后移一个位置。
5 */
6
7 /*分析
8 * 1、有一个从小到大排列好的数组,如:1,3,5,7,9,11,13,15,17,19,21;(共11个数,插入就12个了)
9 * 2、插入一个数(如10或者22);
10 * 3、(1)22的话,因为大于最后一个数,所有直接排在最后
11 * (2)10的话,因为要插入数组中,所有要移动11,13.。。等后面的数
12 * 4、难度就在怎么确定插入的位置,然后移动后腾出位置了才能插入======利用for循环,挨个遍历,找到a[i]<=x<=a[i+1]的地方,
13 * 然后用t作为中间变量来移动
14 * */
15
16 /*【注】
17 * 数组扩充 array = Arrays.copyOf(array, array.length + 1);// 数组扩容
18 * */
19
20
21 package homework;
22
23 import java.util.Arrays;
24 import java.util.Scanner;
25
26 public class _30 {
27
28 public static void main(String[] args) {
29 // 声明一个大小为12的整数型数组
30 int[] a={1,3,5,7,9,11,13,15,17,19,21};
31 //输入要插入的数
32 System.out.println("请输入要插入的整数:");
33 int x=new Scanner(System.in).nextInt();
34
35 //数组扩充===比较关键
36 a = Arrays.copyOf(a,a.length+1);
37 //声明一个整型表示数组长度
38 int length=a.length;
39
40 //比较要插入的数是否大于数组的最后一个数
41 // System.out.println(a[a.length-1]);
42 if(x>a[length-2]) { //x大于最后一个数
43 a[length-1]=x;
44 }
45 else { //x小于最后一个数
46 //声明一个location来存放找到的位置的数组下标
47 int location = 0;
48 //遍历数组,找到应该插入的位置
49 for (int i = 0; i < a.length; i++) {
50 if((a[i]<=x)&(a[i+1]>=x)) {
51 location=i+1; //找到这个位置的前一个数后,要插入到其中间,所有这里加1
52 break;
53 }
54 }
55 // //测试
56 // System.out.println(location);
57
58 //开始移动数据
59 for (int i = length; i > location; i--) {
60 a[i-1]=a[i-2];
61 }
62 a[location]=x;
63 }
64 //输出数组
65 for (int i = 0; i < a.length; i++) {
66 System.out.print(a[i]+" ");
67 }
68
69
70 }
71
72 }
Java例题_30 在已经排好序的数组中插入值的更多相关文章
- 如何快速找到排好序的数组中最先不连续的数字N
现在有一大堆自然数组成的小到大数组arr,其中会有123456910 这样就要找到6(最先不连续的数字) 举例:[12356789] 找到3 [012345678] 找到8 第一种:遍历数组判断是否 ...
- 排好序的数组中,找出两数之和为m的所有组合
public static void main(String[] args) { int[] a = {1,2,2,3,3,4,5,6}; int m = 6; normal(a, m); } //正 ...
- 设子数组A[0:k]和A[k+1:N-1]已排好序(0≤K≤N-1)。试设计一个合并这2个子数组为排好序的数组A[0:N-1]的算法。
设子数组A[0:k]和A[k+1:N-1]已排好序(0≤K≤N-1).试设计一个合并这2个子数组为排好序的数组A[0:N-1]的算法.要求算法在最坏情况下所用的计算时间为O(N),只用到O(1)的辅助 ...
- 【Java】 剑指offer(53-1) 数字在排序数组中出现的次数
正文 本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 统计一个数字在排序数组中出现的次数.例如输入排序数组{1, ...
- Java构造二叉树、树形结构先序遍历、中序遍历、后序遍历
package com.example.demo; public class BTree { public int data; public BTree left; public BTree rigt ...
- java 数组中插入新的元素
class Demo1 { public static void main(String[] args) { /* 5. 有如下歌曲数组 String[] musics = new String[]{ ...
- Js有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
<!DOCTYPE html> <title>Title</title> <script> var arr = [1,2,3,4,11]; var s ...
- java 将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7, 5,9。
public class Test3 { public static void main(String[] args) { int[] grade = {87,88,89,98,78}; int m; ...
- 一个排好序的数组,找出两数之和为x的所有组合【双指针】
#include <bits/stdc++.h> using namespace std; const int N = 1e6,INF = 0x3f3f3f3f; int a[N]; in ...
随机推荐
- Linked List & List Node All In One
Linked List & List Node All In One 链表 & 节点 链表类型 单链表 双链表 环形链表 / 循环链表 Singly Linked List (Uni- ...
- CSS Box Model All In One
CSS Box Model All In One CSS 盒子模型 All In One CSS Box Model CSS Box Model Module Level 3 W3C Working ...
- React & redux-saga & effects & Generator function & React Hooks
React & redux-saga & effects & Generator function & React Hooks demos https://github ...
- 市值达万亿?总量仅10万枚的VAST,先兑换先得!
据了解,SPC第一轮.第二轮空投已经结束,两轮空投下来共发放了400万枚SPC.NGK所有算力持有者有效账户基本获得了SPC空投奖励,甚至有的NGK算力持有者获得了数千枚SPC. 而为了进一步奖励NG ...
- PAA房产,一家有温度的房产公司
PAUL ADAMS ARCHITECT房产(以下简称PAA,公司编号:07635831)对每一个客户从心出,为他们选择优质房源,为他们缔造家的温暖.PAA房产,是一家有温度的房产公司. PAA房产( ...
- now-go时间百宝箱
golang不像C#,Java这种高级语言,有丰富的语法糖供开发者很方便的调用.所以这便催生出很多的开源组件,通过使用这些第三方组件能够帮助我们在开发过程中少踩很多的坑. 时间处理是所有语言都要面对的 ...
- ForkJoinPool大型图文现场(一阅到底 vs 直接收藏)
知识回顾 并发工具类我们已经讲了很多,这些工具类的「目标」是让我们只关注任务本身,并且忽视线程间合作细节,简化了并发编程难度的同时,也增加了很多安全性.工具类的对使用者的「目标」虽然一致,但每一个工具 ...
- Echars统计图的使用
第一步去官网挑选自己需要的图形了. 官网地址:https://echarts.baidu.com/ 第二步按照官网的demo,下载需要的js组件并放到自己的项目中. 第三步仿照demo创建需要的div ...
- Go中的if-else判断
目录 go中的if-else判断 一.语法 go中的if-else判断 一.语法 if 条件 { //符合上面条件的执行 } else if 条件{ //符合上面条件的执行 } else { // 不 ...
- 一文吃透如何部署kubernetes高可用集群
使用 k8s 官方提供的部署工具 kubeadm 自动安装,需要在 master 和 node 节点上安装 docker 等组件,然后初始化,把管理端的控制服务和 node 上的服务都以 pod 的方 ...