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

    void quickSort(int s[], int l, int r) //返回调整后基准数的位置
    {
        int i = l, j = r;
        int tmp = s[l]; //s[l]即s[i]就是第一个坑
        while (i < j)
        {
            // 从右向左找小于x的数来填s[i]
            while(i < j && s[j] >= x) 
                j--;  
            if(i < j) 
            {
                s[i] = s[j]; //将s[j]填到s[i]中,s[j]就形成了一个新的坑
                i++;
            }
    
            // 从左向右找大于或等于x的数来填s[j]
            while(i < j && s[i] <= x)
                i++;  
            if(i < j) 
            {
                s[j] = s[i]; //将s[i]填到s[j]中,s[i]就形成了一个新的坑
                j--;
            }
        }
        //退出时,i等于j。将x填到这个坑中。
        s[i] = tmp;
    
        quickSort(a,l,i-1);
            quickSort(a,i+1,r);
    }

    那种左右两边都找到后,再交换的写法是错误的

  • 相关阅读:
    8.10日报
    8.9日报
    8.8日报
    8.7日报
    《大道至简》读后感
    8.6日报
    8.5日报
    8.4日报
    8.3日报
    8.2日报
  • 原文地址:https://www.cnblogs.com/genggeng/p/6772980.html
Copyright © 2011-2022 走看看