排序算法

/**
* 冒泡排序
* @param arr
*/
public static void bubbleSort(int [] arr){
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;
}
}
}
}

/**
* 二分查找
* @param arr
* @param x
* @return
*/

public static int find(int [] arr,int x){
int min = 0;
int max = arr.length - 1;
int mid = (min + max)/2;
while(arr[mid] != x){
if(arr[mid] > x){
max = mid -1;
}
if(arr[mid] <x){
min = mid + 1;
}
mid = (min + max)/2;
if(min > max){
return -1;
}
}
return mid;
}

/**
* 快速排序
* @param arr
* @param low
* @param high
*/
public static void quickSort(int [] arr,int low,int high){
int i,j,index;
if(low >= high){
return;
}
i = low;
j = high;
index = arr[i];
while (i < j){
while(i < j && arr[j] >= index){
j--;
}
if(i < j){
arr[i++] = arr[j];
}
while (i < j && arr[i] <= index){
i++;
}
if(i < j){
arr[j--] = arr[i];
}
}

arr[i] = index;
quickSort(arr,low,i-1);
quickSort(arr,i+1,high);
}
}
原文地址:https://www.cnblogs.com/cn-chy-com/p/10855897.html