数组(插入算法[int])

 1 public static void main(String[] args) {
 2         //在一个数组中插入一个数据[步骤]----前提:该数组是有序数组!!!
 3         //01.首先声明这个数组
 4         //刚开始的数组
 5         int[] num = { 10, 25, 36, 49 };
 6         //遍历输出num数组元素
 7         for (int i = 0; i < num.length; i++) {
 8             System.out.print(num[i] + "\t");
 9         }
10         System.out.println();
11         //02.建立一个新的数组,数组长度为原数组长度+你想插入的数字的个数
12         //定义一个新的数组nums
13         int[] nums = new int[5];
14         //03.声明想要插入的数
15         //定义一个想插入的整数number
16         int number = -5;
17         //04.将原数组赋值给新的数组
18         //将刚开始的length为4的数组赋值给length为5的新数组
19         for (int i = 0; i < num.length; i++) {
20             nums[i] = num[i];
21         }
22         //05.输出新数组的各项元素(会发现,新数组比原数组多的一个或几个位置上的值为0)
23         //遍历输出新数组的元素
24         for (int i = 0; i < nums.length; i++) {
25             System.out.print(nums[i] + "\t");
26         }
27         System.out.println();
28         //06.声明一个位置,为想要插入的数在新数组上占一个位置
29         //定义一个下标,该下标代表number在数组nums中的位置
30         int index = nums.length - 1;
31         //07.通过循环比较,找到这个位置
32         for (int i = 0; i < nums.length; i++) {
33             if (nums[i] > number) {
34                 index = i;
35                 break;
36             }
37         }
38         //08.将这个位置前或后的其他元素位置向前或向后变更
39         for (int i = nums.length - 1; i > index; i--) {
40             nums[i] = nums[i - 1];
41         }
42         //09.将想要插入的数赋值给这个找到的位置上的新数组的元素
43         nums[index] = number;
44         //10.遍历输出新数组中的元素--------插入完成!!!
45         for (int i = 0; i < nums.length; i++) {
46             System.out.print(nums[i] + "\t");
47         }
48     }
时间: 2024-08-29 15:49:09

数组(插入算法[int])的相关文章

房上的猫:数组插入算法等难点专开

一:查找算法 二:复制算法 三:插入算法

Java中数组的几个常用算法:插入算法,删除算法,冒泡排序算法

前言: 在Java中我们常常会用数组,提到数组就不得不介绍数组中常用到的几个算法. 有插入算法,删除算法,冒泡排序算法等. 在学习这几个数组的算法前,我们先来了解一下关于数组一些基本知识. 数组的基本知识: 数组的定义:数组(Array)是相同数据类型的数据的有序集合. 数组是引用数据类型. 数组的三个特点: [1]数组长度是确定.数组一旦申请完空间,长度不能发生变化,用length属性访问. [2]数组的元素都是同一数据类型. [3]数组是有序的 .每个元素通过下标/索引标记,索引从0开始.

在排序好的数组插入一个数字,数字要插入到合适的位置上

最近在看以前大一看过的一本书<JAVA开发实战经典>李兴华写的,每看一次以前看过的书,收获都是不一样的,很多东西以前不明白,现在一看恍然大悟的感觉: 这道题目是书上的习题,没给参考答案,我在网上也没找到好点的,就发上来,感觉这个算法还可以优化得更好,希望高手指点 // 在排序好的数组插入一个数字,数字要插入到合适的位置上 int intArr[] = { 11, 22,33, 44, 55, 66, 77}; int insertNum = 34; //找到要插入的位置 int insertI

插入算法 转载

插入排序算法是一个对少量元素进行排序的有效算法.插入排序的工作原理与打牌时整理手中的牌的做法类似,开始摸牌时,我们的左手是空的,接着一次从桌上摸起一张牌,并将它插入到左手的正确位置.为了找到这张牌的正确位置,要将它与手中已有的牌从右到左进行比较,无论什么时候手中的牌都是排序好的. JAVA实现该算法如下: 1 public void insertSort(int a[]){ 2 int length=a.length; //数组长度 3 int j; //当前值的位置 4 int i; //指向

冒泡排序、选择排序及插入算法

一.冒泡排列 冒泡排序的原理如下,以8个数由大到小排列为例,进行说明,数据存放在数组a[8]中. 假如8个数分别为4.9.10.3.2.14.11.5. a[0]<a[1]即4<9,故交换位置,9.4.10.3.2.14.11.5 a[1]<a[2]即4<10,故交换位置,9.10.4.3.2.14.11.5 a[2]>a[3]即4>3,位置不变,继续比较 a[3]>a[4]即3>2,位置不变,继续比较 a[4<a[5]即2<14,故交换位置,9

数组概念与基础以及数组常用算法

1.1.1 数组基础 数组(Array)是相同数据类型的数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素(item),每个数组元素可以通过一个下标/索引来(index)访问它们. 数组是引用数据类型. 数组的三个特点 [1]数组长度是确定.数组一旦申请完空间,长度不能发生变化,用length属性访问. [2]数组的元素都是同一数据类型. [3]数组是有序的 .每个元素通过下标/索引标记,索引从0开始. 1.1.2 内存空间分类(

数组常用算法举例加解释(第一篇)

 一,插入算法 一个数组有序,在添加一个元素后,求数组依然有序 //先定义一个数组(如要添加元素,咱们得在元素末尾空出来一个预备位0),顺便定义要加入的元素t        int []a=new int[]{1,3,7,9,12,20,0};        int t=8:        //首先咱们得找到该元素 的位置排在第几位:让t和数组中的每一个元素 依次 参与比较 直到遇到恰好比他大的那个元素        int loc=-1; //表示t应该在的位置        for(int

java_数组插入001

import java.util.Arrays;import java.util.Scanner; public class jh_54_数组的插入算法 { /* * 有一组学员的成绩{99,85,82,63, 60}, * 将它们按升序排列. * 要增加一个学员的成绩, * 将它插入成绩序列,并保持升序. */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int [] oldArra

那些有关求解next数组的算法

next数组的历史 有关字符串的模式匹配算法中,比较容易写出的是朴素的匹配算法也就是一种暴力求解方式,但是由于其时间复杂度为子串长度和主串长度的乘积,例如strlen(subStr) = n,strlen(mainStr) = m,则其时间复杂度为O(mn). 为了能够得到更有效的匹配算法,D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特--莫里斯--普拉特操作(简称KMP算法).KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达