• 头歌实验快速排序


    #include

    using namespace std;

    void print(int a[], int n)

    {  

        for(int j= 0; j

        {  

               cout<

            }  

    }  

    void quickSort(int a[], int low ,int high)

    {

     /********************begin***********************/

       if (low < high) {

            int pivot = a[low];  // 选择第一个元素为基准值

            int i = low + 1;     // 从基准值之后的第一个元素开始遍历

            int j = high;        // 从最后一个元素开始遍历

            while (i <= j) {

                // 从左边找到第一个大于基准值的元素

                while (i <= j && a[i] < pivot) {

                    i++;

                }

                // 从右边找到第一个小于基准值的元素

                while (i <= j && a[j] > pivot) {

                    j--;

                }

                // 交换找到的两个元素

                if (i <= j) {

                    swap(a[i], a[j]);

                    i++;

                    j--;

                }

            }

            // 将基准值放到正确的位置上

            swap(a[low], a[j]);

            // 递归地对基准值两边的子数组进行快速排序

            quickSort(a, low, j - 1);

            quickSort(a, j + 1, high);

        }

     /********************end *************************/

    }

    int main()

    {  

        int n;

        cin>>n;

        int *a = new int[n];

        for (int i=0;i

        {

            cin>>a[i];

        }

       

     /********************begin***********************/

        quickSort(a, 0, n-1);

        print(a, n);

        delete[] a;

        return 0;

     /********************end *************************/

    }

  • 相关阅读:
    Xcode15+iOS17适配以及遇到的问题
    B树和B+树的区别
    Linux两条服务器实现相互免密登录
    工作流编排引擎-Temporal
    干货 | 如何快速实现 BitSail Connector?
    HAM高可用配置及故障切换
    现代物流有哪些特点?
    服务名无效。 请键入 NET HELPMSG 2185以获得更多的帮助
    iText7高级教程之构建基础块——4.使用AbstractElement对象(part 1)
    2 SpringMVC之入门案例
  • 原文地址:https://blog.csdn.net/Ydsb_w/article/details/133673741