zoukankan      html  css  js  c++  java
  • quickSort算法导论版实现

    本文主要实践一下算法导论上的快排算法,活动活动。

    伪代码图来源于 http://www.cnblogs.com/dongkuo/p/4827281.html

     1 // imp the quicksort algorithm 2016.12.21
     2 
     3 #include <iostream>
     4 #include <fstream>
     5 #include <vector>
     6 
     7 using namespace std;
     8 
     9 int Partion(vector<int> & vec, int b, int e)
    10 {
    11     int x = vec[e];
    12     int i = b - 1;
    13 
    14     for(int j = b;j < e;j++)
    15         if (vec[j] < x)
    16         {
    17             i += 1;
    18             swap(vec[i], vec[j]);
    19         }
    20 
    21     swap(vec[i + 1], vec[e]);
    22 
    23     return i + 1;
    24 }
    25 
    26 void quickSort(vector<int> & vec,int b,int e)
    27 {
    28     int q = 0;
    29     if (b < e)
    30     {
    31         q = Partion(vec, b, e);
    32         quickSort(vec, b, q - 1);
    33         quickSort(vec, q + 1, e);
    34     }
    35 }
    36 
    37 int main()
    38 {
    39     ifstream fin("rawData.txt");
    40     ofstream fout("sortedData.txt",ios::out);
    41 
    42     int temp;
    43     vector<int> vec;
    44 
    45     while (fin >> temp) {
    46         vec.push_back(temp);
    47     }
    48 
    49     fout << "Data before sort :" << endl;
    50     for each (auto & var in vec)
    51     {
    52         fout << var << " ";
    53     }
    54     fout << endl;
    55 
    56     quickSort(vec,0,vec.size() - 1);
    57 
    58     fout << "Data after sort :" << endl;
    59     for each (auto & var in vec)
    60     {
    61        // cout << var << " ";
    62         fout << var << " ";
    63     }
    64     fout << endl;
    65 
    66     fin.close();
    67     fout.close();
    68 
    69     return 0;
    70 }

    原始数据位于rawData.txt中如下:

    3 2 10 8 6 7 1

    运行结果保存在sortedData.txt中如下:

    Data before sort :
    3 2 10 8 6 7 1
    Data after sort :
    1 2 3 6 7 8 10

  • 相关阅读:
    js 复杂研究
    js 页面 保持状态 的方法
    C# 向上取整数
    js 获取dom 为null 测试
    net core 下 接受文件 测试
    layui 源码解读(部分)
    js 定时器
    js addEventListener
    C# 获得对象的命名空间 ?.
    修改maven的默认jdk版本
  • 原文地址:https://www.cnblogs.com/with-a-orchid/p/quickSort.html
Copyright © 2011-2022 走看看