冒泡排序 1234567891011121314151617void swap(int &a,int &b){ int temp=a; a=b; b=temp;}void BubbleSort(int A[];int n){ for(int i=0;i<n-1;i++) bool flag=false; for(int j=n-1;j>i;j--) if(A[j-1]>A[j]){ swap(A[j-1],A[j]); flag=true; } if(flag==false) return; //本趟遍历后没有发生交换,说明表已经有序,可以结束算法} 稳定 可用于链表、顺序表 快速排序 123456789101112131415161718192021int Partition(int A[];int low;int high){ int pivot=A[low] while(low<high){ while(low<high&&A[high]>=pivot) --high; A[low]=A[high] while(low<high && A[low]<=pivot) ++low; A[high] = A[low]; } A[low]=pivot; return low;}void QuickSort(int A[];int low;int high){ if(low<high){ int pivotpos = Partition(A,low,high); QuickSort(A,low,pivotpos-1); QuickSort(A,pivotpos+1,high); }}