【每日编程-368期】西北工业大学上机题(二)

教育   2024-11-27 10:02   广西  

西北工业大学上机题(二)


每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊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



灰灰考研
最全的【计算机考研】【软件考研】考研信息! 最丰富的共享资料! 最大程度上帮助学渣狗登上研究生大门!
 最新文章