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

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    int Partition(int list[], int low, int high)
    {
      int pivotkey = list[low];
      while(low < high)
      {
        while(low<high && list[high]>= pivotkey) 
          high--;
        //找到第一个小于key的记录
        if(low < high) 
          list[low++] = list[high];//相当于交换了list[i]和list[j]
    
        while(low<high && list[low]<= pivotkey) 
          low++; 
        if(low < high) 
          list[high--] = list[low]; 
      }
      list[low] = pivotkey;
      return low;
    
    }
    void QSort(int list[], int low, int high)
    {
      int pivotpos;
      if(low < high)
      {
        pivotpos = Partition(list, low, high);
        QSort(list, low, pivotpos - 1); 
        QSort(list, pivotpos + 1, high); 
      }
    }
    int main(int argc, char *argv[])
    {
      int list[] = {2,52,12,45,86,36,75,33,65,99};
      int i;
      for(i = 0;i < 10;i++)
      {
        printf("%5d",list[i]);
      }
      printf("\n\n");
      QSort(list, 0, 9);
    //out
    
      for(i = 0;i < 10;i++)
      {
        printf("%5d",list[i]);
      }
      system("PAUSE");
      return EXIT_SUCCESS;
    }
  • 相关阅读:
    break return continue
    爬虫---请求
    pycharm加开头注释
    爬虫---入门
    pip
    XML基础
    英语
    布局
    adobe
    StackOverflow
  • 原文地址:https://www.cnblogs.com/hbf369/p/2675199.html
Copyright © 2011-2022 走看看