zoukankan      html  css  js  c++  java
  • 排序算法之快速排序QuickSort

    挖坑填数-快速排序

    1. left = L,right = R;将基准数挖出形成第一个坑s[left];

    2. right --; 由后向前找比它小的数,找到后挖出此数填前一个坑s[left]中。

    3. left ++; 由前向后找比它大的数,找到后挖出此数填前一个坑s[right]中。

    4. 重复进行(2)(3),直到left == right,将基准数填入s[left]中。

    源码如下:

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    void quickSort(int s[], int l, int r)
    {
        if(l < r)
        {
            int left = l, right = r;
            int val = s[left];
    
            while(left < right)
            {
                while(left < right && val <= s[right])
                    right--;
                if(left < right)
                    s[left++] = s[right];
    
                while(left < right && val > s[left])
                    left++;
                if(left < right)
                    s[right--] = s[left];
            }
            s[left] = val;
            quickSort(s, l, left - 1);
            quickSort(s, left + 1, r);
        }
    }
    
    int main()
    {
        const int len = 3;
        int s[len] = {72, 6, 57};
        int l = 0, r = len  -1;
    
        quickSort(s, l, r);
        for(int i = 0; i <= r; i++)
        {
            printf("%d	", s[i]);
        }
        return 0;
    }
  • 相关阅读:
    win10安装Redis
    imemode属性解释
    DataTable导出到Excel
    Oracle中wm_concat函数报错解决方法
    GridView中生成复合表头
    WinXP下无法打开ACCESS解决办法
    提醒功能
    网页常用Javascript
    ASP.NET记录错误日志
    GridView中Js的应用
  • 原文地址:https://www.cnblogs.com/zkfopen/p/10654558.html
Copyright © 2011-2022 走看看