一:冒泡排序
代码实现: public static void bubboleSort(int[] arr) { for (int x = 0; x < arr.length - 1; x++) { for (int y = 0; y < arr.length - 1 - x; y++) { if (arr[y] > arr[y + 1]) { int temp = arr[y]; arr[y] = arr[y + 1]; arr[y + 1] = temp; } } } }
二:选择排序
代码实现: public static void selectSort(int[] arr) { for (int x = 0; x < arr.length - 1; x++) { for (int y = x + 1; y < arr.length; y++) { if (arr[x] > arr[y]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } }
三,二分查找
折半查找(二分查找) :数组一定是有序
分析:
A:定义最小索引和最大索引
B:计算中间索引
C:中间索引对应的元素和需要查找的元素比较
相等,直接返回中间索引
不相等:
大了,左边找
max = mid -1 ;
小了,右边找
min = mid + 1 ;
E:重新计算中间索引 ,回到B继续查找
代码实现 public static int search(int[] arr,int value) { //1定义数组中的最小索引和最大索引 int min = 0 ; int max = arr.length -1 ; //2 计算出中间索引 int mid = (max+min)/2 ; //3)拿中间索引对应的元素和需要查找的元素进行比较 //如果相等,返回 while(arr[mid]!=value) { //不相等 if(arr[mid] >value) { max = mid -1 ; }else { min = mid + 1 ; } //如果这value在数组中找不到,找不到返回-1 if(min>max) { return -1 ; } //重新计算出中间索引 mid = (max+min)/2 ; } return mid ; }