1.冒泡排序算法
public void bubbleSort(long[] array){ for(int i= 0;i<array.length-1;i++){ for(int j=array.length-1;j>i;j--){ if(array[j]<array[j-1]){ int temp = array[j]; array[j]=array[j-1]; array[j-1]=temp; } } } }
2.选择排序
public static void selectSort(long[] arr) { int k = 0; long tmp = 0; for(int i = 0; i < arr.length - 1; i++) { k = i; for(int j = i; j < arr.length; j++) { if(arr[j] < arr[k]) { k = j; } } tmp = arr[i]; arr[i] = arr[k]; arr[k] = tmp; } }
3.插入排序
public static void sort(long[] arr) { long tmp = 0; for(int i = 1; i < arr.length; i++) { tmp = arr[i]; int j = i; while(j > 0 && arr[j-1] >= tmp) { arr[j] = arr[j - 1]; j--; } arr[j] = tmp; } }
4.希尔排序
public static void sort(long[] arr) { //初始化一个间隔 int h = 1; //计算最大间隔 while(h < arr.length / 3) { h = h * 3 + 1; } while(h > 0) { //进行插入排序 long tmp = 0; for(int i = h; i < arr.length; i++) { tmp = arr[i]; int j = i; while(j > h - 1 && arr[j - h] >= tmp) { arr[j] = arr[j - h]; j -= h; } arr[j] = tmp; } //减小间隔 h = (h - 1) / 3; } }
5.二分法查找元素
public int binarySearch(int[] data,int teargetNum){ int start = 0; //开始位置 int end = data.length-1; while(start<=end){ int middle = (start+end)/2; if(targetNum==data[middle]){ return middle; }else if(targetNum>data[middle]){ start = middle+1; }else{ end = middle -1; } } return -1 //-1表示没有找到 }