经典排序算法的平均时间复杂度: O ( N 2 ) {O(N^2)} O(N2):冒泡、选择、插入 O ( N ∗ l o g N ) {O(N*logN)} O(N∗logN):归并、快速排序、希尔排序、堆排序 O ( N ) {O(N)} O(N):桶排序
经典排序算法的空间复杂度: O ( 1 ) {O(1)} O(1):插入、选择、冒泡、堆排序、希尔排序 O ( l o g N ) {O(logN)} O(logN)~ O ( N ) {O(N)} O(N):快速排序 O ( N ) {O(N)} O(N):归并排序 O ( M ) {O(M)} O(M):桶排序(M是桶的大小)
稳定的排序算法: 冒泡、插入、归并、桶排序
不稳定的排序算法: 快速排序、希尔排序、选择排序、堆排序(可记:快些选队 *^_^*)
一、冒泡排序 BubbleSort
classBubbleSort{
publicint[]bubbleSort(int[] A,int n){
// write code herefor(int i =1; i < n; i++){
for(int j =0; j < n -1; j++){
if(A[j]> A[j +1]){
int t = A[j];
A[j]= A[j +1];
A[j +1]= t;}}}return A;}publicstaticvoidmain(String[] args){
System.out.println(Arrays.toString(newBubbleSort().bubbleSort(newint[]{
1,2,3,5,2,3},6)));}}
二、选择排序 SelectionSort
classSelectionSort{
publicint[]selectionSort(int[] A,int n){
// write code herefor(int i =0; i < n -1; i++){
int min = i;for(int j = i; j < n; j++){
if(A[j]< A[min]){
min = j;}}int t = A[min];
A[min]= A[i];
A[i]= t;}return A;}publicstaticvoidmain(String[
一、冒泡排序 BubbleSortclass BubbleSort { public int[] bubbleSort(int[] A, int n) { // write code here for (int i = 1; i &amp;lt; n; i++) { for (int j = 0; j &amp;lt; n - 1; j++) {...