1. 请选择一种排序算法对数组[3,7,9,2,-1,22]进行排序。]-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

1. 请选择一种排序算法对数组[3,7,9,2,-1,22]进行排序。]

知与谁同 2018-07-18 14:47:44 806
1. 请选择一种排序算法对数组[3,7,9,2,-1,22]进行排序。]
搜索推荐
分享到
取消 提交回答
全部回答(3)
  • 云篆
    2019-07-17 22:50:02
    你今年
    0 0
  • 聚小编
    2019-07-17 22:50:01
    冒泡法或者是快速排序
    0 0
  • 沉默术士
    2019-07-17 22:50:01
    快速排序算法:其中T为测试次数,n为元素个数
    #include <iostream>
    using namespace std;

    int partition(int *s, int low, int high)
    {
    int i, j, t;
    int pivot = s[low];
    j = low;
    for (i = low + 1; i <= high; i++)
    {
    if (s[i] < pivot)
    {
    j++;
    t = s[i];
    s[i] = s[j];
    s[j] = t;
    }
    }
    t = s[j]; //交换pivot和比pivot小的序列的最后一个数
    s[j] = pivot;
    s[low] = t;
    return j;
    }

    void Quicksort(int *s, int low, int high)
    {
    int pivot; //中枢轴
    if (low < high)
    {
    pivot = partition(s, low, high);
    Quicksort(s, low, pivot - 1); //对低子表递归排序
    Quicksort(s, pivot + 1, high); //对高子表递归排序
    }
    }

    int main()
    {
    int T, N;
    int i;
    int a[1000];
    cin >> T;
    while (T--)
    {
    cin >> N;
    for (i = 0; i < N; i++)
    cin >> a[i];
    Quicksort(a, 0, N - 1);
    for (i = 0; i < N; i++)
    cout << a[i] << endl;
    }
    return 0;
    }

    冒泡排序算法:其中T为测试次数,n为元素个数
    #include <iostream>
    using namespace std;

    int main()
    {
    int T, N;
    int i, j, k, t;
    int a[1000];
    cin >> T;
    while (T--)
    {
    cin >> N;
    for (i = 0; i < N; i++)
    cin >> a[i];
    for (j = 0; j < N - 1; j++)
    {
    for (k = 0; k < N - j - 1; k++)
    {
    if (a[k] > a[k + 1])
    {
    t = a[k + 1];
    a[k + 1] = a[k];
    a[k] = t;
    }
    }
    }
    for (i = 0; i < N; i++)
    cout << a[i] << endl;
    }
    return 0;
    }
    0 0
添加回答
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

推荐文章
相似问题