数组中查找並返回数组_java数组查找常见情况
生活随笔
收集整理的這篇文章主要介紹了
数组中查找並返回数组_java数组查找常见情况
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一.最簡單的查找元素方法(依次比較):給一個數(shù)組,在數(shù)組里面查找某個元素在數(shù)組中的位置,并返回它的位置。
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("這個數(shù)值在數(shù)組中,且在第"+(i+1)+"個位置");return i;}}System.out.println("這個數(shù)值不在數(shù)組中");return 0; }特點,通用,但是這個效率太慢,需要從第一個元素依次比較。
二.查找一個數(shù)值是否在這個數(shù)組里面,若存在返回它所在位置,若不存在它應(yīng)該有序數(shù)組在什么位置:(折半查找)
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("該數(shù)值存在于數(shù)組,且在第" + (mid+1) + "位置");return mid;}}System.out.println("該數(shù)值不存在于數(shù)組,它應(yīng)該位于第"+(min+1) +"個位置處");return min;}這里我們先用冒泡算法就行排序,再用折半查找進行索引。我們來看看結(jié)果:1.輸入54看看結(jié)果,
2.輸入10看看結(jié)果,
3.輸入-1看看結(jié)果,
三.在上面的基礎(chǔ)上,將這個數(shù)值按大小放進這個有序數(shù)組,生成新的有序數(shù)組,看看代碼:(插入數(shù)值得到新數(shù)組)
//將數(shù)值放入數(shù)組中,生成新的有序數(shù)組 public static void newArr(int[] arr, int mid, int key) {int[] arr02 = new int[arr.length + 1]; //定義一個新數(shù)組,大于下標的數(shù)后移一位int mid01 = mid-1;arr02[mid01] = mid;for (int i = 0; i < arr02.length; i++) {if (i < mid01) { //當下標小于需要插入的位置時,賦原來數(shù)組的值arr02[i] = arr[i];} else if (i == mid01) //當下標等于需要插入的位置時,賦插入的值arr02[i] = key;else { //當下標大于需要插入的位置時,賦原來數(shù)組的值arr02[i] = arr[i - 1];}}System.out.println(Arrays.toString(arr02)); }得到結(jié)果是:
總結(jié)
以上是生活随笔為你收集整理的数组中查找並返回数组_java数组查找常见情况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 异地就医医保备案流程(医保备案流程)
- 下一篇: 备案资料库表体序号(备案资料库)