快速排序
時間限制(普通/Java):1000MS/3000MS 運行內存限制:65536KByte
總提交:653 測試通過:297
總提交:653 測試通過:297
描述
給定輸入排序元素數目n和相應的n個元素,寫出程序,利用內排序算法中快速排序算法進行排序,並輸出排序最后結果的相應序列。
輸入
共兩行,第一行給出排序元素數目n,第二行給出n個元素,1≤n≤100000,每個元素值范圍為 [0,100000)
輸出
一行,輸出排序結果。
樣例輸入
7
48 36 68 72 12 48 2
樣例輸出
2 12 36 48 48 68 72
提示
數據結構A實驗四
題目來源
CHENZ
//快速排序 #include<iostream> using namespace std; int* l; void Swap(int &a,int &b) { int temp=a; a=b; b=temp; } int Partition(int left,int right) { int i=left,j=right+1; do { do i++;while(l[i]<l[left]); do j--;while(l[j]>l[left]); if(i<j) Swap(l[i],l[j]); }while(i<j); Swap(l[left],l[j]); return j; } void QuickSort(int left,int right) { if(left<right) { int j=Partition(left,right); QuickSort(left,j-1); QuickSort(j+1,right); } } int main() { int N,i; cin>>N; l=new int[N]; for(i=0;i<N;i++) cin>>l[i]; QuickSort(0,N-1); for(i=0;i<N;i++) { cout<<l[i]; if(i<N-1) cout<<" ";//此處oj格式要求 } return 0; }