冒泡排序
public static void bubbleSort(int[] arr){
int temp = 0;
for (int i = 0;i < arr.length - 1;i++){
boolean flag = false;
for (int j = 0;j < arr.length -1 -i;j++){
if (arr[j] > arr[j + 1]){
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
flag = true;
}
}
if (!flag){
break;
}
}
}
选择排序
public static void SelectSort(int[] arr){
for (int i = 0;i < arr.length - 1;i++){
int min = arr[i];
int minIndex = i;
for (int j = i + 1;j < arr.length;j++){
if (min > arr[j]){
min = arr[j];
minIndex = j;
}
}
if (minIndex != i){
arr[minIndex] = arr[i];
arr[i] = min;
}
}
}
插入排序
public static void InsertSort(int[] arr){
for (int i = 1;i < arr.length;i++){
int insertIndex = i -1;
int insertVal = arr[i];
while (insertIndex >= 0 && insertVal < arr[insertIndex]){
arr[insertIndex + 1] = arr[insertIndex];
insertIndex--;
}
if (insertIndex + 1 != i){
arr[insertIndex + 1] = insertVal;
}
}
}
希尔排序
public static void ShellSort(int[] arr){
for (int gap = arr.length/2;gap > 0;gap /= 2){
for (int i = gap;i < arr.length;i++){
int insertIndex = i - gap;
int inserVal = arr[i];
while (insertIndex >= 0 && inserVal < arr[insertIndex]){
arr[insertIndex + gap] = arr[insertIndex];
insertIndex -= gap;
}
arr[insertIndex + gap] = inserVal;
}
}
}
快速排序
public static void quickSort(int[] arr,int low,int high){
int left = low;
int right = high;
if (left < high){
int mid = arr[left];
while (left < right){
while (left<right && arr[right] >= mid) right--;
arr[left] = arr[right];
while (left<right && arr[left] <= mid) left++;
arr[right] = arr[left];
}
arr[left] = mid;
quickSort(arr,low,left -1);
quickSort(arr,left +1,high);
}
}