From 3f5bb6c4d48017c4487f786f517e0636352480ef Mon Sep 17 00:00:00 2001
From: caozhixin <593721042@qq.com>
Date: Sat, 4 Jun 2022 15:20:17 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=90=E6=B3=A2=E9=82=A3=E5=A5=91-?=
=?UTF-8?q?=E5=88=86=E6=9E=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.classpath | 6 --
.idea/.gitignore | 10 +++
.idea/Algorithms.iml | 21 ++++++
.idea/misc.xml | 9 +++
.idea/modules.xml | 8 +++
.idea/vcs.xml | 6 ++
.project | 17 -----
.../jimmysun/algorithms/chapter2_3/Ex02.txt | 10 +++
.../jimmysun/algorithms/chapter2_3/Ex12.txt | 16 +++++
...47\350\203\275\347\211\271\347\202\271.md" | 68 ++++++++++++++++++
.../test/binary_search_test/README.md | 14 ++++
.../test/binary_search_test/image/CFG/03.png | Bin 0 -> 14287 bytes
.../test/binary_search_test/image/CFG/04.png | Bin 0 -> 34508 bytes
.../test/binary_search_test/image/CFG/1.png | Bin 0 -> 27394 bytes
.../test/binary_search_test/image/CFG/p2.png | Bin 0 -> 16488 bytes
.../test/binary_search_test/image/DFG/07.png | Bin 0 -> 34851 bytes
.../test/binary_search_test/image/DFG/5.png | Bin 0 -> 31398 bytes
.../test/binary_search_test/image/DFG/6.png | Bin 0 -> 19792 bytes
.../jimmysun/algorithms/chapter1_1/Ex06.java | 2 +
.../binary_search_test/BinarySearchTest.java | 4 +-
20 files changed, 166 insertions(+), 25 deletions(-)
delete mode 100644 .classpath
create mode 100644 .idea/.gitignore
create mode 100644 .idea/Algorithms.iml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/modules.xml
create mode 100644 .idea/vcs.xml
delete mode 100644 .project
create mode 100644 out/production/Algorithms/com/jimmysun/algorithms/chapter2_3/Ex02.txt
create mode 100644 out/production/Algorithms/com/jimmysun/algorithms/chapter2_3/Ex12.txt
create mode 100644 "out/production/Algorithms/com/jimmysun/algorithms/chapter2_5/\345\220\204\347\247\215\346\216\222\345\272\217\347\256\227\346\263\225\347\232\204\346\200\247\350\203\275\347\211\271\347\202\271.md"
create mode 100644 out/production/Algorithms/test/binary_search_test/README.md
create mode 100644 out/production/Algorithms/test/binary_search_test/image/CFG/03.png
create mode 100644 out/production/Algorithms/test/binary_search_test/image/CFG/04.png
create mode 100644 out/production/Algorithms/test/binary_search_test/image/CFG/1.png
create mode 100644 out/production/Algorithms/test/binary_search_test/image/CFG/p2.png
create mode 100644 out/production/Algorithms/test/binary_search_test/image/DFG/07.png
create mode 100644 out/production/Algorithms/test/binary_search_test/image/DFG/5.png
create mode 100644 out/production/Algorithms/test/binary_search_test/image/DFG/6.png
diff --git a/.classpath b/.classpath
deleted file mode 100644
index 91ee9a5..0000000
--- a/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..0a8642f
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Zeppelin ignored files
+/ZeppelinRemoteNotebooks/
diff --git a/.idea/Algorithms.iml b/.idea/Algorithms.iml
new file mode 100644
index 0000000..c3dc060
--- /dev/null
+++ b/.idea/Algorithms.iml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..e375c85
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..49ba2a5
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.project b/.project
deleted file mode 100644
index 2580803..0000000
--- a/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- Algorithms
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/out/production/Algorithms/com/jimmysun/algorithms/chapter2_3/Ex02.txt b/out/production/Algorithms/com/jimmysun/algorithms/chapter2_3/Ex02.txt
new file mode 100644
index 0000000..7c67f8f
--- /dev/null
+++ b/out/production/Algorithms/com/jimmysun/algorithms/chapter2_3/Ex02.txt
@@ -0,0 +1,10 @@
+lo j hi 0 1 2 3 4 5 6 7 8 9 10 11
+ E A S Y Q U E S T I O N
+ 0 2 11 E A E Y Q U S S T I O N
+ 0 1 1 A E E Y Q U S S T I O N
+ 3 11 11 A E E N Q U S S T I O Y
+ 3 4 10 A E E I N U S S T Q O Y
+ 5 10 10 A E E I N O S S T Q U Y
+ 5 5 9 A E E I N O S S T Q U Y
+ 6 7 9 A E E I N O Q S T S U Y
+ 8 9 9 A E E I N O Q S S T U Y
\ No newline at end of file
diff --git a/out/production/Algorithms/com/jimmysun/algorithms/chapter2_3/Ex12.txt b/out/production/Algorithms/com/jimmysun/algorithms/chapter2_3/Ex12.txt
new file mode 100644
index 0000000..4568464
--- /dev/null
+++ b/out/production/Algorithms/com/jimmysun/algorithms/chapter2_3/Ex12.txt
@@ -0,0 +1,16 @@
+lt i gt 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
+ 0 1 14 B A B A B A B A C A D A B R A
+ 1 2 14 A B B A B A B A C A D A B R A
+ 1 3 14 A B B A B A B A C A D A B R A
+ 2 4 14 A A B B B A B A C A D A B R A
+ 2 5 14 A A B B B A B A C A D A B R A
+ 3 6 14 A A A B B B B A C A D A B R A
+ 3 7 14 A A A B B B B A C A D A B R A
+ 4 8 14 A A A A B B B B C A D A B R A
+ 4 8 13 A A A A B B B B A A D A B R C
+ 5 9 13 A A A A A B B B B A D A B R C
+ 6 10 13 A A A A A A B B B B D A B R C
+ 6 10 12 A A A A A A B B B B R A B D C
+ 6 10 11 A A A A A A B B B B B A R D C
+ 6 11 11 A A A A A A B B B B B A R D C
+ 7 12 11 A A A A A A A B B B B B R D C
\ No newline at end of file
diff --git "a/out/production/Algorithms/com/jimmysun/algorithms/chapter2_5/\345\220\204\347\247\215\346\216\222\345\272\217\347\256\227\346\263\225\347\232\204\346\200\247\350\203\275\347\211\271\347\202\271.md" "b/out/production/Algorithms/com/jimmysun/algorithms/chapter2_5/\345\220\204\347\247\215\346\216\222\345\272\217\347\256\227\346\263\225\347\232\204\346\200\247\350\203\275\347\211\271\347\202\271.md"
new file mode 100644
index 0000000..045bf72
--- /dev/null
+++ "b/out/production/Algorithms/com/jimmysun/algorithms/chapter2_5/\345\220\204\347\247\215\346\216\222\345\272\217\347\256\227\346\263\225\347\232\204\346\200\247\350\203\275\347\211\271\347\202\271.md"
@@ -0,0 +1,68 @@
+
+
+
+ 算 法
+ 是否稳定
+ 是否为原地排序
+ 时间复杂度
+ 空间复杂度
+ 备 注
+
+
+ 选择排序
+ 否
+ 是
+ N^2
+ 1
+
+
+
+ 插入排序
+ 是
+ 是
+ 介于N和N^2之间
+ 1
+ 取决于输入元素的排列情况
+
+
+ 希尔排序
+ 否
+ 是
+ NlogN? N^(6/5)?
+ 1
+
+
+
+ 快速排序
+ 否
+ 是
+ NlogN
+ lgN
+ 运行效率由概率提供保证
+
+
+ 三向快速排序
+ 否
+ 是
+ 介于N和NlogN之间
+ lgN
+ 运行效率由概率保证,同时也取决于输入元素的分布情况
+
+
+ 归并排序
+ 是
+ 否
+ NlogN
+ N
+
+
+
+ 堆排序
+ 否
+ 是
+ NlogN
+ 1
+
+
+
+
diff --git a/out/production/Algorithms/test/binary_search_test/README.md b/out/production/Algorithms/test/binary_search_test/README.md
new file mode 100644
index 0000000..c21ce1f
--- /dev/null
+++ b/out/production/Algorithms/test/binary_search_test/README.md
@@ -0,0 +1,14 @@
+This module test by 2 techniques, which are Control Flow Graph with MCC Coverage and Data Flow Graph with All DU-Paths Coverage
+
+* Control Flow Graph with MCC
+
+Test cases:
+
+
+
+* Data Flow Graph with All DU-Paths Coverage
+Graph:
+
+
+Testcase:
+
diff --git a/out/production/Algorithms/test/binary_search_test/image/CFG/03.png b/out/production/Algorithms/test/binary_search_test/image/CFG/03.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b470d4726c0af1dfdc8aa5c8395fec0aab787a6
GIT binary patch
literal 14287
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
literal 0
HcmV?d00001
diff --git a/out/production/Algorithms/test/binary_search_test/image/CFG/04.png b/out/production/Algorithms/test/binary_search_test/image/CFG/04.png
new file mode 100644
index 0000000000000000000000000000000000000000..cfdcd0ce92c7a82dc16471c06f50e1e2f9c75e83
GIT binary patch
literal 34508
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
literal 0
HcmV?d00001
diff --git a/out/production/Algorithms/test/binary_search_test/image/CFG/1.png b/out/production/Algorithms/test/binary_search_test/image/CFG/1.png
new file mode 100644
index 0000000000000000000000000000000000000000..af591b4d49cac5d8e49a6a2f738e989c14428bcf
GIT binary patch
literal 27394
zcmdqJ2UJvRwl!Ks5Cnxn5lmzh41g#o5{o3Dl9U`314_=BqCgZx1w;@f2PH=(X9Pq<
zaug(kgaVOJ(g2hEu7kc@8y}iBTMRLnTir?`1p(#B|KUPsE2oUaa
ze}DTW`qK?UYfg1{yj-&F;I+4sySDJ>j^&HI_VykjCnuNnu#;BbO-{~54_{PWmC*it
z)m2sO*BBWN)m2rckeejS_R_IC?ek?J)7rmp{7Y5UEBHM)IIvbl#zc0G4Bg$%?#y%B
zFZ7L8DE^+QDfuq7gIGB!KRoFpuhTw`mz8+$>e2n=Ycib+2j#C>`y9+M
zdrztSGq06M*DJBz{Va--`}rezX1P6?x)^R=qYu+YTUsGmbBE2s_l#alJ_HZ