每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399
输入一组数据的个数 再输入这组数据,然后排序。
输入格式:
数组元素的个数
数组元素(以空格隔开)
输出格式:
排序后的数组
输入样例:
6
10 5 9 3 4 6
输出样例:
3 4 5 6 9 10
解决方法:
(1)算法的基本思想:
本题采用的排序:快速排序方法。
写本题的思考:其实有很多学校实际上考的还是比较基础的,学完数据结构后对于基本的排序,查找一定要十分熟悉,千万不能忘记。在西工大试题集里面,笔者还看到归并排序的上机题,所以这些基本技能一定不要忘记。
读者可以直接尝试一下能不能快速的写出快速排序的代码。
(2)代码实现:
#include
using namespace std;
int partition(int *a, int low, int high)
{
int pivot = a[low];
while (low < high)
{
if (high > low && a[high] > pivot)
--high;
a[low] = a[high];
if (high > low && a[low] < pivot)
++low;
a[high] = a[low];
}
a[low] = pivot;
return low;
}
void quickSort(int *a, int low, int high)
{
if (low < high)
{
int pivotpos = partition(a, low, high);
quickSort(a, low, pivotpos - 1);
quickSort(a, pivotpos + 1, high);
}
}
int main()
{
int n = 0;
cin >> n;
int *a = new int[n];
for (int i = 0; i < n; i++)
cin >> a[i];
quickSort(a, 0, n - 1);
for (int i = 0; i < n; i++)
cout << a[i] << " ";
cout << endl;
system("pause");
return 0;
}
括号匹配,输入测试数目n,接着n行输入n组样例(考过多次),假设只包含小括号和中括号。
输入格式:
准备判断表达式的个数
输入包含小括号或者中括号的括号表达式(其中可有其它符号)
输出格式:
可以匹配输出yes否则no
输入样例:
2
([3])
([[[)
输出样例:
yes
no