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 ...
随机推荐
- js spider
js spider https://gist.github.com/xgqfrms-GitHub/0bf82ff06037a0d1776c9f30033cbfd1 https://www.cnblog ...
- .Net Core 3.1浏览器后端服务(三) Swagger引入与应用
一.前言 前后端分离的软件开发方式已逐步成为互联网项目开发的业界标准,前后端分离带来了诸多好处的同时,也带来了一些弊端. 接口文档的维护就是其中之一,起初前后端约定文档规范,开发的很愉快,随着时间推移 ...
- HTTP 协议中的并发限制及队首阻塞问题
本文转载自HTTP 协议中的并发限制及队首阻塞问题 串行连接 HTTP/0.9 和早期的 HTTP/1.0 协议对 HTTP 请求处理是串行化的.假如一个页面包含 3 个样式文件,同属于一个协议.域名 ...
- Jupyter Notebook 暗色自定义主题
这款主题是在jupyter-dark-theme的基础上修改了字体大小和行高,以及显示工具栏.感谢原作者! 安装 下载custom.css文件并移动至~/.jupyter/custom/文件夹下,如果 ...
- 数据库分表自增ID问题
.................................................................................................... ...
- js 一元运算符
一元运算符还有一个常用的用法就是将自执行函数的function从函数声明变成表达式. 常用的有 + - - ! void + function () { } - function () { } ~ f ...
- vue学习遇到的问题
1.vue脚手架的安装,解决链接:https://www.cnblogs.com/qcq0703/p/14439467.html2.2.2.0+ 的版本里,当在组件上使用 v-for 时,key 现在 ...
- Project facet Java version 1.7 is not supported.解决方法
最近遇到这个问题,在网上查到的解决方案基本都是下面几个: 1.右击项目,properties,project facets,改动java的version为1.7. 2.window,propertie ...
- SpringBoot2.x整合JavaMail以qq邮箱发送邮件
本文参考spring官网email接口文档所写. spring-email官方网址:https://docs.spring.io/spring/docs/5.1.8.RELEASE/spring-fr ...
- Ctfweb(2)
CTFwebshow(2): phps源码泄露 思路:第一次接触phps这个后缀,第一眼打开的时候是想着用御剑去扫目录,但是很遗憾没有扫到index.phps,然后用burp抓包返回包信息也没有看到端 ...