1.选择排序
public static void swap(int[] arr, int i, int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
public static void printArray(int[] arr){
for (int each : arr){
System.out.print(each + " ");
}
}
public static void selectSort(int[] arr){
if(arr.length < 2 || arr == null){
return;
}
int N = arr.length;
for (int i = 0 ; i < N; i++){
int minValueIndex = i;
for(int j = i+1;j < N;j++){
minValueIndex = arr[j] < arr[minValueIndex] ? j : minValueIndex;
}
swap(arr, i, minValueIndex);
}
}
2. 冒泡排序
public static void bubbleSort1(int[] arr){
if(arr.length < 2 || arr == null){
return;
}
int N = arr.length;
for(int end = N-1; end >= 0; end-- ){
for(int second = 1; second <= end; second++){
if(arr[second - 1] > arr[second]){
swap(arr, second - 1,second);
}
}
}
}
3.插入排序
public static void insertionSort1(int[] arr){
if(arr.length < 2 || arr == null){
return;
}
int N = arr.length;
for(int end = 1; end < N; end++){
int newNumIndex = end;
while(newNumIndex-1 >= 0 && arr[newNumIndex-1] > arr[newNumIndex]){
swap(arr,newNumIndex-1,newNumIndex);
newNumIndex--;
}
}
}
public static void insertion(int[] arr){
if(arr.length < 2 || arr == null){
return;
}
int N = arr.length;
for (int current = 1; current < N; current++){
for(int pre = current - 1; pre >= 0 && arr[pre] > arr[pre+1]; pre--){
swap(arr,pre,pre+1);
}
}
}