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;
}
}
参考思路与代码:快速排序
代码如下:
// 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;
}
}
相关文章推荐
- sicily--1154. Easy sort
- sicily 1154. Easy sort
- [sicily]1154. Easy sort
- Sicily 1154. Easy sort
- Sicily 1154. Easy sort
- Sicily 4630. 计算三角形面积 (难得水题)
- sicily--1510. Mispelling
- Sicily、uva、pc部分题目分类
- sicily--1299. Academy Awards
- sicily--1201. 01000001
- sicily 1172 Queens, Knights and Pawns
- sicily 6273. 菲波那契数列
- sicily 6374. 素数
- sicily 1694 Spiral
- [sicily online]1006. Team Rankings
- [sicily online]1024. Magic Island
- [sicily online]1077. Cash Machine
- sicily 6572. partial sum
- sicily1018
- Sicily.1014. Specialized Four-Dig