目录
1.找出数组中最大值下标
2.找出数组中最小值下标
3.找出数组中指定元素所在的下标位置
4.逆序数组
5.找出数组中指定元素的最后一次出现的下标位置
6.找出指定元素在指定数组中所有下标位置 【难点】
7.在指定位置插入指定元素
8.在指定位置删除指定元素
9.找出数组中最大值元素,放到下标为0的位置
10.接上一题,找出数组中剩余元素的最大值,放到下标为1的位置
11.再接上一题,找出数组中剩余元素的最大值,放到下标为2的位置
12.选择排序算法
1.找出数组中最大值下标
/*找出数组中最大值下标*/
class ArrayDemo01{public static void main(String[] args) {int[] arr = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10 };maxOfArray(arr);}/*** @param arr 定义形参,传入数组数据* @param index 指定元素的位置*/public static void maxOfArray(int[] arr) {// 定义一个变量存储数组中最大的那个值int max = arr[0];// 标记最大值下标位置int index = 0;for (int i = 0; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];index = i;}}System.out.println("最大下标 : " + index);}}
2.找出数组中最小值下标
/*找出数组中最小值下标*/
class ArrayDemo02{public static void main(String[] args) {int[] arr = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10 };maxOfArray(arr);}public static void maxOfArray(int[] arr) {// 定义一个变量存储数组中最大的那个值int max = arr[0];// 标记最大值下标位置int index = 0;for (int i = 0; i < arr.length; i++) {if (arr[i] < max) {max = arr[i];index = i;}}System.out.println("最小值下标 : " + index);}}
3.找出数组中指定元素所在的下标位置
class ArrayDemo03 {public static void main(String[] args) {int[] arr = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10 };pointOfArray(arr);}public static void pointOfArray(int[] arr) {int point = 3 ;int index = 0;for (int i = 0;i < arr.length; i++) {if (point == arr[i]) {index = i;} }System.out.println("输出指定元素下标 :" + index);}
}
4.逆序数组
/*逆序数组*/
class ArrayDemo04 {public static void main(String[] args) {int[] arr = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 10 };reverseOfArray(arr);}public static void reverseOfArray(int[] arr) {// for (int i = arr.length - 1; i >= 0; i--) {
// System.out.print(arr[i] + " ");
// }int len = arr.length - 1;for (int i = 0; i < arr.length / 2; i++) {int temp = arr[i];arr[i] = arr[len - i];arr[len - i] = temp;}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}
5.找出数组中指定元素的最后一次出现的下标位置
/*
*找出数组中指定元素的最后一次出现的下标位置
*/
class ArrayExercise01 {public static void main(String[] args) {int[] array = {1,3,3,5,3,8,9,0,8,7};//接受方法的返回值thePointLastOfArray(array, 3);}/*** @param arr 定义形参,传入数组数据* @param point 用于指定所查找的元素* @param index 用于记录元素最后一次出现的位置*/public static void thePointLastOfArray(int[] arr, int point) {int index = 0;for (int i = 0; i < arr.length; i++) {if (point == arr[i]) {index = i;//continue;} }System.out.println(index);}
}
6.找出指定元素在指定数组中所有下标位置 【难点】
/*
*找出指定元素在指定数组中所有下标位置*/class ArrayExercise02 {public static void main(String[] args) {int[] arr = {1, 3, 3, 5, 3, 8, 9, 0, 8, 7};int[] indexes = new int[arr.length];// 接受方法的返回值,得到的数查询目标数据的个数int count = findAllIndex(arr, indexes, 3);/*** 找出指定数组arr中,指定元素find所有的下标位置,保存到indexes数组中,返回值 是找到的目标数据个数* * @param arr 定义形参,传入数组数据* @param indexes 保存下标信息的数组* @param find 指定的目标元素*/public static int findAllIndex(int[] arr, int[] indexes, int find) {/** 1. 计数,当前指定数组arr中,有多少个目标元素* 2. count同时是indexes数组中下一次存放数据的下标位置*/int count = 0;for (int i = 0; i < arr.length; i++) {if (find == arr[i]) {/** 需要保存下标位置到indexes数组中* 操作过程是需要讲indexes数组中存储下标位置* 下标位置需要放入到下一个空余位置中,同时需要* 完成计数操作* * count数据刚刚好就是下一次存储数据的位置下标*/indexes[count] = i;count++;}}return count;}
}
7.在指定位置插入指定元素
/*在指定位置插入指定元素*/class ArrayExercise03 {public static void main(String[] args) {int[] array = {1, 3, 5, 7, 9, 0};//调用该方法,接收该方法的返回值thePointInsertOfArray(array, 4, 2);}/*** @param arr 定义形参,传入数组数据* @param point 用于指定所插入的元素* @param index 用于指定所插元素的位置*/public static void thePointInsertOfArray(int[] arr, int point, int index) {/** 插入元素,其后面的元素后移*/for (int i = arr.length - 1; i >= index; i--) {arr[i] = arr[i - 1];}for (int i = 0; i < arr.length; i++) {/** 把指定元素的index与数组中该位置作比较* 如果相等,则把指定元素放入该指定位置*/if (point == i) {//把指定元素放入指定位置arr[index] = point;}}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " "); }}
}
8.在指定位置删除指定元素
/*在指定位置删除指定元素*/
class ArrayExercise04 {public static void main(String[] args) {//初始化该数组int[] arr = {1, 3, 5, 7, 9};//接收该方法的返回值delthePointOfArray(arr, 2);}/*** @param arr 定义形参,传入数组数据* @param index 指定元素下标**/public static void delthePointOfArray(int[] arr, int index) {//把传入的 index 作为 i 的初始值//把删除的那个元素后面的数据前移,最后一个元素置0for (int i = index; i < arr.length - 1 ; i++) {arr[i] = arr[i + 1];}arr[arr.length - 1] = 0;for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");} }
}
9.找出数组中最大值元素,放到下标为0的位置
/*找出数组中最大值元素,放到下标为0的位置*/
class ArrayExercise05 {public static void main(String[] args) {int[] arr = {1, 3, 6, 5, 8, 4, 0, 2};//调用该方法,接收该方法的返回值replaceOfZeroArray(arr);}/*** @param arr 定义形参,传入数组数据*/public static void replaceOfZeroArray(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {if (arr[i] > arr[0]) {/** 产生的效果:* 使数组最大值移到最前,其余数据后移*/int temp = arr[i];arr[i] = arr[0];arr[0] = temp;}}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}
10.接上一题,找出数组中剩余元素的最大值,放到下标为1的位置
/*接上一题,找出数组中剩余元素的最大值,放到下标为1的位置*/
class ArrayExercise06 {public static void main(String[] args) {int[] arr = {1, 3, 6, 5, 8, 4, 0, 2};//调用该方法,接收该方法的返回值replaceOfFirstArray(arr);}/*** @param arr 定义形参,传入数组数据*/public static void replaceOfFirstArray(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {if (arr[i] > arr[0]) {/** 产生的效果:* 使数组最大值移到最前,其余数据后移*/int temp = arr[i];arr[i] = arr[0];arr[0] = temp;}}//数组中剩余元素的最大值,放到下标为1的位置for (int i = 1; i < arr.length - 1; i++) {if (arr[i] > arr[1]) {/** 产生的效果:* 使数组最大值移到最前,其余数据后移*/int temp = arr[i];arr[i] = arr[1];arr[1] = temp;}}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}
11.再接上一题,找出数组中剩余元素的最大值,放到下标为2的位置
/*再接上一题,找出数组中剩余元素的最大值,放到下标为2的位置*/
class ArrayExercise07 {public static void main(String[] args) {int[] arr = {1, 3, 6, 5, 8, 4, 0, 2};//调用该方法,接收该方法的返回值replaceOfSecondArray(arr);}/*** @param arr 定义形参,传入数组数据*/public static void replaceOfSecondArray(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {if (arr[i] > arr[0]) {/** 产生的效果:* 使数组最大值移到最前,其余数据后移*/int temp = arr[i];arr[i] = arr[0];arr[0] = temp;}}//数组中剩余元素的最大值,放到下标为1的位置for (int i = 1; i < arr.length - 1; i++) {if (arr[i] > arr[1]) {/** 产生的效果:* 使数组最大值移到最前,其余数据后移*/int temp = arr[i];arr[i] = arr[1];arr[1] = temp;}}//数组中剩余元素的最大值,放到下标为1的位置for (int i = 2; i < arr.length - 1; i++) {if (arr[i] > arr[2]) {/** 产生的效果:* 使数组最大值移到最前,其余数据后移*/int temp = arr[i];arr[i] = arr[2];arr[2] = temp;}}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}
12.选择排序算法
/*选择排序*/
class SeclectSortDemo {public static void main(String[] args) {int[] arr = {1, 5, 9, 2, 3, 4, 0, 7, 6};for (int i = 0; i < arr.length - 1; i++) {for(int j = i ; j < arr.length; j++) {if (arr[i] > arr[j]) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " "); }}
}