您的位置:首页 > 其它

Sicily 1154. Easy sort

2017-12-31 22:09 309 查看
随便选择一个排序算法,只要时间复杂度低于O(n^2)即可,我选择了快速排序。

参考思路与代码:快速排序

代码如下:

// Problem#: 1154
// Submission#: 5185561
// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/ // All Copyright reserved by Informatic Lab of Sun Yat-sen University
#include <iostream>
using namespace std;

void quick_sort(int *a,int left,int right)
{
if (left >= right) return;
int i = left,j = right,base = a[left];
while(i != j)
{
while(a[j] > base && i < j)
{
j --;
}
while(a[i] <= base && i < j)
{
i ++;
}
if (i < j)
{
int tem = a[i];
a[i] = a[j];
a[j] = tem;
}
}
a[left] = a[i];
a[i] = base;
quick_sort(a,left,i - 1);
quick_sort(a,i + 1,right);
}

int main()
{
int cases;
cin >> cases;
while(cases --)
{
int num;
cin >> num;
int *a = new int[num];
for (int i = 0;i < num;i ++)
cin >> a[i];
quick_sort(a,0,num - 1);
for (int i = 0;i < num;i ++)
cout << a[i] << endl;
delete [] a;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  西西里日常水