zoukankan      html  css  js  c++  java
  • 快速排序(c++,递归)quick_sort

    放上c++代码,模板

     1 #include <iostream>
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 
     5 int partition(vector<int>& v, int l, int r)
     6 {
     7     int t=v[l];
     8     while(l<r)
     9     {
    10         while(l<r&&v[r]>=t) //当右边部分数据大于等于哨兵数据t时,忽略,则r--
    11             r--;
    12         v[l] = v[r];
    13         while(l<r&&v[l]<=t)
    14             l++;
    15         v[r]=v[l];
    16 
    17     }
    18     v[l] = t;   //当l==r时停止,该处放入哨兵数据t
    19     return l;
    20 }
    21 
    22 void quick_sort(vector<int>& v, int l, int r) //递归拆分
    23 {
    24     if(l<r)
    25     {
    26         int m = partition(v,l,r); //先找划分点
    27         quick_sort(v,l,m-1);   //划分点左侧继续快排
    28         quick_sort(v,m+1,r);   //划分点右侧继续快排
    29     }
    30 
    31 }
    32 
    33 int main()
    34 {
    35     //cout << "Hello world!" << endl;
    36     vector<int> v={6,3,2,1,4,5};
    37     quick_sort(v,0,v.size()-1);
    38 
    39     for(auto i:v)
    40         cout<<i<<endl;
    41 
    42     return 0;
    43 }
  • 相关阅读:
    js对象
    实习经历日志02
    前端实习经历日志01
    js变量提升
    WebApls-元素(offset, client, scroll)
    WebApls-Bom
    WebApls-DOM的核心总结
    WebApls-节点01
    javascript-
    Javascript-字符串对象
  • 原文地址:https://www.cnblogs.com/qiezi-online/p/13253832.html
Copyright © 2011-2022 走看看