• 快速排序


    一个简单的快速排序实现。其中,对比的节点为第一个结点。

     1 #include<iostream>
     2 #include<cstdlib>
     3 #include<ctime>
     4 #define VectorMax 100
     5 using namespace std;
     6 int vector[VectorMax];        /* * * sort vec * length is vec's length * flag == 0, increase; * flag == 1, decrease * */
     7 void myqsort(int *vec, int length);
     8 void print(int *vec, int length);
     9 int main()
    10 {
    11     srand(time(NULL));
    12     for (int i = 0; i < VectorMax; i++)
    13         vector[i] = rand() % 100;
    14     myqsort(vector, VectorMax);
    15     print(vector, VectorMax);
    16     return 0;
    17 }
    18 /*sort vec[begin, end) */
    19 
    20 void subSort(int *vec, int begin, int end)
    21 {
    22     int Tag = vec[begin];
    23     int Begin = begin;
    24     int End = end - 1;
    25     while (Begin < End) {
    26         while (vec[End] > Tag && Begin < End)
    27             End--;
    28         vec[Begin] = Begin < End ? vec[End] : vec[Begin];
    29         while (vec[Begin] <= Tag && Begin < End)
    30             Begin++;
    31         vec[End] = Begin < End ? vec[Begin] : vec[End];
    32     }
    33     vec[Begin] = Tag;
    34     if (Begin - begin > 1)
    35         subSort(vec, begin, Begin);
    36     if (end - Begin > 1)
    37         subSort(vec, Begin + 1, end);
    38 }
    39 
    40 void myqsort(int *vec, int length)
    41 {
    42     subSort(vec, 0, length);
    43 } 
    44 void print(int *vec, int length)
    45 {
    46     for (int i = 0; i < length; i++)
    47         cout << vec[i] << " ";
    48     cout << endl;
    49 }
  • 相关阅读:
    好用的电脑软件
    Swoft HTTPServer 使用经验分享
    nginx location proxy_pass详解
    kafka文档
    es 安装
    rabbitmq 文档
    Mysql百万级数据迁移,怎么迁移?实战过没?
    用bat脚本在Windows上实现微信多开
    vscode保存时自动格式化
    引入bootstrap
  • 原文地址:https://www.cnblogs.com/-lee/p/4254081.html
Copyright © 2020-2023  润新知