算法基础(选择排序、冒泡排序、插入排序),时间复杂度为 O(N^2)
public class sort {
public static void main(String[] args){
int[] arr = {5,4,6,5,34,56,3,4,5,65,754,6,67};
//arr = selectionsort(arr);
//arr = popSort(arr);
arr = insertSort(arr);
for(int i=0; i<arr.length; i++){
System.out.print(arr[i] + " ");
}
}
//选择排序
public static int[] selectionSort(int[] arr){
int length = arr.length;
for(int i=0; i<length; i++){
for(int j=i+1; j<length; j++){
if(arr[i] > arr[j]){
swap(arr, i, j);
}
}
}
return arr;
}
//冒泡排序
public static int[] popSort(int[] arr){
if(arr==null || arr.length<=1){
return arr;
}
int length = arr.length;
for(int i=length-1; i>1; i--){
for(int j=1; j<=i; j++){
if(arr[j-1]>arr[j]){
swap(arr,j-1, j);
}
}
}
return arr;
}
//插入排序
public static int[] insertSort(int[] arr){
if(arr==null || arr.length<2){
return arr;
}
int length = arr.length;
for(int i=0; i<length; i++){
for(int j=i; j>=1; j--){
if(arr[j] < arr[j-1]){
swap(arr, j, j-1);
}else{
break;
}
}
}
return arr;
}
public static void swap(int[] arr,int i,int j){
int help = arr[i];
arr[i] = arr[j];
arr[j] = help;
}
}