数组不能将数值传给int_java数组查找常见情况
生活随笔
收集整理的這篇文章主要介紹了
数组不能将数值传给int_java数组查找常见情况
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.最簡單的查找元素方法(依次比較):給一個數組,在數組里面查找某個元素在數組中的位置,并返回它的位置。
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("這個數值在數組中,且在第"+(i+1)+"個位置");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("該數值存在于數組,且在第" + (mid+1) + "位置");return mid;}}System.out.println("該數值不存在于數組,它應該位于第"+(min+1) +"個位置處");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)); }得到結果是:
總結
以上是生活随笔為你收集整理的数组不能将数值传给int_java数组查找常见情况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python词云cannot open
- 下一篇: python csv文件写入失败_pyt