城阳城市规划建设局网站,室内设计公司职位,大连信息网,wordpress建站教程道一一.最简单的查找元素方法#xff08;依次比较#xff09;#xff1a;给一个数组#xff0c;在数组里面查找某个元素在数组中的位置#xff0c;并返回它的位置。public static void main(String[] args) {int arr[] new int[]{12, 4, 54, 57, 87, 3, 41, 1, 3, 4, 1, 3, 4…一.最简单的查找元素方法依次比较给一个数组在数组里面查找某个元素在数组中的位置并返回它的位置。public static void main(String[] args) {int arr[] new int[]{12, 4, 54, 57, 87, 3, 41, 1, 3, 4, 1, 3, 4, 31, 2};getIndex(arr ,54);
}public static int getIndex(int[] arr, int key) {for (int i 0; i arr.length; i) {if (key arr[i]) {System.out.println(这个数值在数组中且在第(i1)个位置);return i;}}System.out.println(这个数值不在数组中);return 0;
}特点通用但是这个效率太慢需要从第一个元素依次比较。二.查找一个数值是否在这个数组里面若存在返回它所在位置若不存在它应该有序数组在什么位置:折半查找public class ShuZuFind {public static void main(String[] args) {int arr[] new int[]{12, 4, 54, 57, 87, 3, 41, 1, 3, 4, 1, 3, 4, 31, 2};for (int i 0; i arr.length - 1; i) {for (int j 0; j arr.length-1-i; j) {if (arr[j] arr[j 1]) {int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}}System.out.println(Arrays.toString(arr));getIndex(arr, 54);}public static int getIndex(int[] arr, int key) {int min 0;int max arr.length - 1;while (min max) {int mid (min max) / 2;if (key arr[mid])min mid 1;else if (key arr[mid])max mid - 1;else {System.out.println(该数值存在于数组且在第 (mid1) 位置);return mid;}}System.out.println(该数值不存在于数组它应该位于第(min1) 个位置处);return min;}这里我们先用冒泡算法就行排序再用折半查找进行索引。我们来看看结果1.输入54看看结果, 2.输入10看看结果 3.输入-1看看结果三.在上面的基础上将这个数值按大小放进这个有序数组生成新的有序数组看看代码插入数值得到新数组 //将数值放入数组中生成新的有序数组
public static void newArr(int[] arr, int mid, int key) {int[] arr02 new int[arr.length 1]; //定义一个新数组大于下标的数后移一位int mid01 mid-1;arr02[mid01] mid;for (int i 0; i arr02.length; i) {if (i mid01) { //当下标小于需要插入的位置时赋原来数组的值arr02[i] arr[i];} else if (i mid01) //当下标等于需要插入的位置时赋插入的值arr02[i] key;else { //当下标大于需要插入的位置时赋原来数组的值arr02[i] arr[i - 1];}}System.out.println(Arrays.toString(arr02));
}得到结果是