码迷,mamicode.com
首页 > 编程语言 > 详细

java_数组插入001

时间:2019-06-19 18:36:12      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:arrays   for   exti   dex   存储   param   stat   scan   import   

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

标签:arrays   for   exti   dex   存储   param   stat   scan   import   

原文地址:https://www.cnblogs.com/lipeitong/p/11053086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!