1.冒泡排序
private static void bubbleSort(int[] arr){
for (int i = 0; i < len-1; i++) {
for (int j = 0; j < len-i-1; j++) {
if (arr[j] < arr[j+1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
2.选择排序
private static void selectSort(int[] arr){
int len = arr.length;
int minIndex,tmp;
for (int i = 0; i < len; i++) {
minIndex = i;
for (int j = i+1; j < len; j++) {
if (arr[j] < arr[minIndex]){
minIndex = j;
}
}
tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}
3.插入排序
private static void insertsort(int[] arr){
for (int i = 1; i < arr.length; i++) {
int j;
int tmp = arr[i];
for (j = i-1; j>=0 && arr[j] > tmp ; j--) {
arr[j+1] = arr[j];
}
arr[j+1] = tmp;
}
}
4.快速排序
private static void quickSort(int[] a, int l, int r) {
if (l < r){
int i = l;
int j = r;
int tmp = a[i];
while (i < j){
while (i<j && a[j] > tmp)
j--;
if (i<j)
a[i++] = a[j];
while (i<j && a[i] < tmp)
i++;
if (i<j)
a[j--] = a[i];
}
a[i] = tmp;
quickSort(a,i+1,r);
quickSort(a,l,i-1);
}
}
二分法查找
private static int binarySearch(int[] a,int n){
int low = 0;
int high = a.length-1;
int mid;
while (low <= high){
mid = (low+high)>>>1;
if (n == a[mid]){
return mid;
}else if (n < a[mid]){
high = mid-1;
}else {
low = mid+1;
}
}
return -1;
}