数组常见算法

发布时间:2026/7/23 3:49:33
数组常见算法 1、数组翻转1交换逻辑2代码实现public class Demo01 { public static void main(String[] args) { int[] arr {1,2,3,4,5,6,7}; for (int min 0,max arr.length-1; min max ; min,max--) { int temp 0; temp arr[min]; arr[min] arr[max]; arr[max] temp; } for (int i 0; i arr.length; i) { System.out.print(arr[i] ); } } }2、冒泡排序1 普通排序都要进行数组元素大小的比较在进行交换位置。2冒泡排序通过比较两个相邻元素之间的大小如果第一个值大于第二个那么交换数值。再比较下一个相邻元素。3实现逻辑4实现代码public class Demo02 { public static void main(String[] args) { int[] arr {4,5,6,2,54,9}; //比较圈数 for (int i 0; i arr.length-1; i) { //每一圈比较的次数 for(int j 0;j arr.length-1-i;j){ if (arr[j]arr[j1]){ int temp 0; temp arr[j]; arr[j] arr[j1]; arr[j1] temp; } } } for (int i 0; i arr.length; i) { System.out.print(arr[i] ); } } }3、二分查找1前提数组中的数据必须是有序的。2查询思想a、老式查找遍历数组一个个比较 — 查询效率慢b、二分查找每次找中间索引对应的元素进行比较查询每一次查询少一半数据3实现代码public class Demo03 { public static void main(String[] args) { int[] arr {1,3,4,5,6,7,8,9}; int index binary(arr,8); System.out.println(index); } public static int binary(int[] arr,int data){ int mid 0; int max arr.length-1; int min 0; while (minmax){ mid (maxmin)/2; if (dataarr[mid]){ minmid1; }else if(dataarr[mid]){ maxmid-1; }else{ return mid; } } return -1; } }