No1154. Easy sort

xiaoxiao2021-02-28  123

一、题目描述

Description

You know sorting is very important. And this easy problem is:

Given you an array with N non-negative integers which are smaller than 10,000,000, you have to sort this array. Sorting means that integer with smaller value presents first.

Input

The first line of the input is a positive integer T. T is the number of the test cases followed.

The first line of each test case is a positive integer N (1<= N<= 1000) which represents the number of integers in the array. After that, N lines followed. The i-th line is the i-th integer in the array.

Output

The output of each test case should consist of N lines. The i-th line is the i-th integer of the array after sorting. No redundant spaces are needed.

Sample Input

2312311

Sample Output

1231

二、主要思想

分治算法,归并排序。

三、代码实现

#include<iostream> #include<vector> using namespace std; vector<int> vec(1001,0); vector<int> temp(1001,0); void merge_sort(int start,int end){ if(start<end){ int mid = start+(end-start)/2; merge_sort(start,mid); merge_sort(mid+1,end); for(int i=start;i<=end;i++) temp[i]=vec[i]; int l=start,r=mid+1; for(int i=start;i<=end;i++){ if(l>mid) vec[i]=temp[r++]; else if(r>end) vec[i]=temp[l++]; else if(temp[r]<temp[l]) vec[i]=temp[r++]; else vec[i]=temp[l++]; } } } int main(){ int t,n; cin>>t; while(t--){ cin>>n; for(int i=0;i<n;++i) cin>>vec[i]; merge_sort(0,n-1); for(int i=0;i<n;++i) cout<<vec[i]<<endl; } return 0; }

转载请注明原文地址: https://www.6miu.com/read-22537.html

最新回复(0)