Skip to content

Commit 9eb22dd

Browse files
committed
update ch2
1 parent 01a8e39 commit 9eb22dd

File tree

17 files changed

+650
-8
lines changed

17 files changed

+650
-8
lines changed

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,14 @@ Algorithms, 4th edition textbook code (using c++)
3535

3636
## ch2. Sorting
3737

38-
| REF | PROGRAM | DESCRIPTION / JAVADOC | REF | PROGRAM | DESCRIPTION / JAVADOC |
39-
| :----------------------------------------------------------: | :----------------------------------------------------------: | :-------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :------------------------: |
40-
| [2.1](https://algs4.cs.princeton.edu/21elementary/index.php#2.1) | [Insertion.h](ch2/head/Insertion.h) | insertion sort | [-](https://algs4.cs.princeton.edu/21elementary/index.php#-) | [InsertionX.h](ch2/head/InsertionX.h) | insertion sort (optimized) |
41-
| [-](https://algs4.cs.princeton.edu/21elementary/index.php#-) | [BinaryInsertion.h](ch2/head/InsertionX.h) | binary insertion sort | [2.2](https://algs4.cs.princeton.edu/21elementary/index.php#2.2) | [Selection.h](ch2/head/InsertionX.h) | selection sort |
42-
| [2.3](https://algs4.cs.princeton.edu/21elementary/index.php#2.3) | [Shell.java](https://algs4.cs.princeton.edu/21elementary/Shell.java.html) | shellsort | [2.4](https://algs4.cs.princeton.edu/22mergesort/index.php#2.4) | [Merge.java](https://algs4.cs.princeton.edu/22mergesort/Merge.java.html) | top-down mergesort |
43-
| [-](https://algs4.cs.princeton.edu/22mergesort/index.php#-) | [MergeBU.h](ch2/head/MergeBU.h) | bottom-up mergesort | [-](https://algs4.cs.princeton.edu/22mergesort/index.php#-) | [MergeX.h](ch2/head/MergeX.h) | optimized mergesort |
44-
| | | | | | |
38+
| REF | PROGRAM | DESCRIPTION / JAVADOC | REF | PROGRAM | DESCRIPTION / JAVADOC |
39+
| :----------------------------------------------------------: | :----------------------------------------------------------: | :-------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :------------------------: |
40+
| [2.1](https://algs4.cs.princeton.edu/21elementary/index.php#2.1) | [Insertion.h](ch2/head/Insertion.h) | insertion sort | [-](https://algs4.cs.princeton.edu/21elementary/index.php#-) | [InsertionX.h](ch2/head/InsertionX.h) | insertion sort (optimized) |
41+
| [-](https://algs4.cs.princeton.edu/21elementary/index.php#-) | [BinaryInsertion.h](ch2/head/InsertionX.h) | binary insertion sort | [2.2](https://algs4.cs.princeton.edu/21elementary/index.php#2.2) | [Selection.h](ch2/head/InsertionX.h) | selection sort |
42+
| [2.3](https://algs4.cs.princeton.edu/21elementary/index.php#2.3) | [Shell.java](https://algs4.cs.princeton.edu/21elementary/Shell.java.html) | shellsort | [2.4](https://algs4.cs.princeton.edu/22mergesort/index.php#2.4) | [Merge.java](https://algs4.cs.princeton.edu/22mergesort/Merge.java.html) | top-down mergesort |
43+
| [-](https://algs4.cs.princeton.edu/22mergesort/index.php#-) | [MergeBU.h](ch2/head/MergeBU.h) | bottom-up mergesort | [-](https://algs4.cs.princeton.edu/22mergesort/index.php#-) | [MergeX.h](ch2/head/MergeX.h) | optimized mergesort |
44+
| [-](https://algs4.cs.princeton.edu/22mergesort/index.php#-) | [Inversions.java](https://algs4.cs.princeton.edu/22mergesort/Inversions.java.html) | number of inversions | [2.5](https://algs4.cs.princeton.edu/23quicksort/index.php#2.5) | [Quick.h](ch2/head/Quick.h) | quicksort |
45+
| [-](https://algs4.cs.princeton.edu/23quicksort/index.php#-) | [Quick3way.h](ch2/head/Quick3way.h) | quicksort with 3-way partitioning | [-](https://algs4.cs.princeton.edu/23quicksort/index.php#-) | [QuickX.h](ch2/head/QuickX.h) | optimized 2-way quicksort |
46+
| [-](https://algs4.cs.princeton.edu/23quicksort/index.php#-) | [QuickBentleyMcIlroy.h](ch2/head/QuickBentleyMcIlroy.h) | optimized 3-way quicksort | | | |
47+
| | | | | | |
48+

ch2/10_Quick/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
cmake_minimum_required(VERSION 3.8)
2+
project(10_Quick)
3+
4+
set(CMAKE_CXX_STANDARD 14)
5+
6+
set(SOURCE_FILES main.cpp ../head/Insertion.h ../head/InsertionX.h ../head/Quick3way.h ../head/QuickX.h ../head/QuickBentleyMcIlroy.h)
7+
add_executable(10_Quick ${SOURCE_FILES})

ch2/10_Quick/main.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#include <iostream>
2+
#include <fstream>
3+
#include "../head/Quick.h"
4+
5+
using namespace std;
6+
7+
int main() {
8+
ifstream file("/home/ace/AceDev/C++/algorithm/ch2/data/tiny.txt");
9+
string tmp;
10+
vector<string> vec;
11+
while (file >> tmp) {
12+
vec.push_back(tmp);
13+
}
14+
Quick::sort(vec);
15+
for (auto a: vec)
16+
cout << a << " ";
17+
cout << endl;
18+
// shuffle
19+
shuffle(vec.begin(), vec.end(), g);
20+
cout << "select kth large in array: " << endl;
21+
for (auto a: vec)
22+
cout << a << " ";
23+
cout << endl;
24+
for (int i = 0; i < vec.size(); ++i) {
25+
auto str = Quick::select(vec, i);
26+
cout << i << " th: " << str << endl;
27+
}
28+
}

ch2/11_Quick3way/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
cmake_minimum_required(VERSION 3.8)
2+
project(11_Quick3way)
3+
4+
set(CMAKE_CXX_STANDARD 14)
5+
6+
set(SOURCE_FILES main.cpp ../head/Insertion.h ../head/InsertionX.h ../head/Quick3way.h)
7+
add_executable(11_Quick3way ${SOURCE_FILES})

ch2/11_Quick3way/main.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#include <iostream>
2+
#include <fstream>
3+
#include "../head/Quick3way.h"
4+
5+
using namespace std;
6+
7+
int main() {
8+
ifstream file("/home/ace/AceDev/C++/algorithm/ch2/data/tiny.txt");
9+
string tmp;
10+
vector<string> vec;
11+
while (file >> tmp) {
12+
vec.push_back(tmp);
13+
}
14+
Quick3way::sort(vec);
15+
Quick3way::show(vec);
16+
}

ch2/12_QuickX/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
cmake_minimum_required(VERSION 3.8)
2+
project(12_QuickX)
3+
4+
set(CMAKE_CXX_STANDARD 14)
5+
6+
set(SOURCE_FILES main.cpp ../head/Insertion.h ../head/InsertionX.h ../head/Quick3way.h)
7+
add_executable(12_QuickX ${SOURCE_FILES})

ch2/12_QuickX/main.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#include <iostream>
2+
#include <fstream>
3+
#include "../head/QuickX.h"
4+
5+
using namespace std;
6+
7+
int main() {
8+
ifstream file("/home/ace/AceDev/C++/algorithm/ch2/data/tiny.txt");
9+
string tmp;
10+
vector<string> vec;
11+
while (file >> tmp) {
12+
vec.push_back(tmp);
13+
}
14+
QuickX::sort(vec);
15+
QuickX::show(vec);
16+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
cmake_minimum_required(VERSION 3.8)
2+
project(13_QuickBentleyMcIlroy)
3+
4+
set(CMAKE_CXX_STANDARD 14)
5+
6+
set(SOURCE_FILES main.cpp ../head/Insertion.h ../head/InsertionX.h ../head/Quick3way.h)
7+
add_executable(13_QuickBentleyMcIlroy ${SOURCE_FILES})

ch2/13_QuickBentleyMcIlroy/main.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#include <iostream>
2+
#include <fstream>
3+
#include "../head/QuickBentleyMcIlroy.h"
4+
5+
using namespace std;
6+
7+
int main() {
8+
ifstream file("/home/ace/AceDev/C++/algorithm/ch2/data/words3.txt");
9+
string tmp;
10+
vector<string> vec;
11+
while (file >> tmp) {
12+
vec.push_back(tmp);
13+
}
14+
QuickBentleyMcIlroy::sort(vec);
15+
QuickBentleyMcIlroy::show(vec);
16+
}

ch2/9_Inversions/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
cmake_minimum_required(VERSION 3.8)
2+
project(9_Inversions)
3+
4+
set(CMAKE_CXX_STANDARD 14)
5+
6+
set(SOURCE_FILES main.cpp ../head/Insertion.h ../head/InsertionX.h)
7+
add_executable(9_Inversions ${SOURCE_FILES})

0 commit comments

Comments
 (0)