java_数组插入001
Posted lipeitong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 [] oldArray = 99,85,82,63,60;
/*
* 1:对原数组进行排序。
* 2:把原数组拷贝到新数组中,
* 3: 寻找插入的位置。
* 4:挪。
* 5:给插入的位置赋值。
* 6:迭代新数组,查看是否插入。
*/
// 1:对原数组进行排序。
Arrays.sort(oldArray);
// 2:把原数组拷贝到新数组中
int [] newArray = new int[oldArray.length+1];
for (int i = 0; i < oldArray.length; i++)
newArray[i]= oldArray[i];
// 3: 寻找插入的位置。
System.out.println("请输入你要插入的数值:num");
int num = sc.nextInt();
int index = newArray.length-1;
for (int i = 0; i < newArray.length; i++)
if(newArray[i] > num)
index = i;
break;
// 4:挪。
if(index != newArray.length-1)
for (int i = newArray.length-1; i>=index; i--)
newArray[i]= newArray[i-1];
// 5:给插入的位置赋值。
newArray[index] = num;
else
//5:给插入的位置赋值。
newArray[index] = num;
// 6:迭代新数组,查看是否插入。
for(int i:newArray)
System.out.print(i+", ");
// 将它们按升序排列。
// int [] oldArray = 99,85,82,63,60;
// bubbleSort(oldArray);
// print(oldArray);
//// 要增加一个学员的成绩,将它插入成绩序列,并保持升序。
// int [] newArray = copyArray(oldArray);
// // 迭代新数组
// print(newArray);
//// int index = searchInsertIndex(newArray,155);
//// System.out.println(index);
//
// move(newArray, 77);
// print(newArray);
/*
* 写一个函数,用于,挪位置。
* 返回值类型 void
* 参数列表。int [] arr ,int num
*/
public static void move(int []arr,int num)
int index = searchInsertIndex(arr, num) ;
if(index != arr.length-1)
for (int i = arr.length -1; i >= index ; i--)
arr[i]= arr[i-1];
arr[index] = num;
else
arr[index] = num;
/*
* 遍历数组,
* 作比较。
* 如果列表元素值,比你插入的数大就找到插入位置了。
*
* 写一个函数,用于查找insert 的位置 index。
* 1:返回值类型。int
* 2:参数列表。int [] arr ,int insert
*/
public static int searchInsertIndex(int [] arr,int num)
// 遍历数组
for (int i = 0; i < arr.length; i++)
if(arr[i]>num)
return i;
return arr.length-1;
/**
* 写一个函数,用于拷贝老数组到新数组中。返回一个新数组。
* 返回值类型 int []
* 参数列表。 int [] arr;
* 声明一个新数组,长度为原数组长度加1
* 迭代原数组,取出每一个元素,依次存储到新数组中。
* @param arr
*/
public static int [] copyArray(int [] oldArray )
// 声明一个新数组,长度为原数组长度加1
int [] newArray = new int[oldArray.length+1];
// 迭代原数组,取出每一个元素,
for (int i = 0; i < oldArray.length; i++)
// 依次存储到新数组中。
newArray[i] = oldArray[i];
return newArray;
/*
* 冒泡排序
*/
public static void bubbleSort(int [] arr)
/*
* Bubble Sort
*
* 列表中相邻的两个元素。
* arr[i]--arr[i+1]
*/
for (int j = 0; j < arr.length-1; j++)
for (int i = 0; i < arr.length -j-1; i++)
if(arr[i]>arr[i+1])
int temp;
temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
/*
* 遍历迭代。
* 1:返回值类型。void
* 2:参数列表。int [] arr
*/
public static void print(int [] arr)
for (int i : arr)
System.out.print(i+", ");
System.out.println();
以上是关于java_数组插入001的主要内容,如果未能解决你的问题,请参考以下文章
69期-Java SE-005_二维数组综合练习-001-002
快乐编程大本营java语言训练班第5课: java的数组编程