程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> OpenJudge百煉習題解答(C++)--題4085:數組去重排序

OpenJudge百煉習題解答(C++)--題4085:數組去重排序

編輯:C++入門知識

OpenJudge百煉習題解答(C++)--題4085:數組去重排序


題:

總時間限制:
1000ms
內存限制:
1000kB
描述

小吉是銀行的會計師,在處理銀行帳目的時候,遇到了一些問題。有一系列整數,其中含有重復的整數,需要去掉重復後,排序輸出,你能幫助小吉解決問題嗎?

輸入
輸入數據共2行,第一行輸入測試數據個數n,第二行輸入這n個整數,整數之間可能有重復,整數之間可能有若干個空格。
n <= 105,所有的整數不超過104
輸出
輸出為1行,是這n個數去重後從小到大的排序。
樣例輸入:
3
4 4 2
樣例輸出:
2 4

解:

#include<iostream>
using namespace std;
void Qsort(int a[], int low, int high)
{
    if(low >= high)
    {
        return;
    }
    int first = low;
    int last = high;
    int key = a[first];/*用字表的第一個記錄作為樞軸*/
 
    while(first < last)
    {
        while(first < last && a[last] >= key)
        {
            --last;
        }
 
        a[first] = a[last];/*將比第一個小的移到低端*/
 
        while(first < last && a[first] <= key)
        {
            ++first;
        }
         
        a[last] = a[first];    
/*將比第一個大的移到高端*/
    }
    a[first] = key;/*樞軸記錄到位*/
    Qsort(a, low, first-1);
    Qsort(a, first+1, high);
}

int main()
{
	int n;
	cin>>n;
	int a[n];
	for(int i=0;i<n;i&#43;&#43;) cin="">>a[i];
	}
	Qsort(a,0,n-1);

	cout<<a[0]<<" int="" i="1;i<n;i++)" return="" pre=""><p>
</p>
   
</a[0]<<"></n;i&#43;&#43;)></iostream>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved