排序算法---1
1、冒泡排序:
1、冒泡排序:
时间复杂度:O(n^2) 空间复杂度O(1)
public int[] bubbleSort(int[] A, int n) { for(int i=A.length-1;i>0;i++){ for(int j=0;j<i;j++){ if(A[j]>A[j+1]){ int temp=A[j]; A[j]=A[j+1]; A[j+1]=temp; } } } return A; }
public int[] bubbleSort1(int[] A){ for(int i=0;i<A.length-1;i++){ for(int j=A.length-1;j>i;j--){ if(A[j-1]>A[j]){ int temp=A[j]; A[j]=A[j-1]; A[j-1]=temp; } } } return A; }
2、选择排序
时间复杂度:O(n^2) 空间复杂度O(1)
public int[] selectionSort(int[] A) { for(int i=0;i<A.length-1;i++){ for(int j=i+1;j<A.length;j++){ if(A[i]>A[j]){ int temp=A[j]; A[j]=A[i]; A[i]=temp; } } } return A; }
3、插入排序
时间复杂度:O(n^2) 空间复杂度O(1)
public int[] insertionSort(int[] A) { int index =0; for(int i=1;i<A.length;i++){ index=i; while(index>0){ if(A[index]<A[index-1]){ int temp =A[index-1]; A[index-1]=A[index]; A[index]=temp; index--; }else{break;} } } return A;