diff --git a/.metadata/.plugins/org.eclipse.core.resources/.history/57/507debe8dfa80017102fc75ae426c58e b/.metadata/.plugins/org.eclipse.core.resources/.history/57/507debe8dfa80017102fc75ae426c58e
new file mode 100644
index 0000000..f42de36
--- /dev/null
+++ b/.metadata/.plugins/org.eclipse.core.resources/.history/57/507debe8dfa80017102fc75ae426c58e
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_10_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_10_of_Algorithm/.markers.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_10_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_10_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_10_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_10_of_Algorithm/.syncinfo.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_10_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_10_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_11_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_11_of_Algorithm/.markers.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_11_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_11_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_11_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_11_of_Algorithm/.syncinfo.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_11_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_11_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_12_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_12_of_Algorithm/.markers.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_12_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_12_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_12_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_12_of_Algorithm/.syncinfo.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_12_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_12_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_13_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_13_of_Algorithm/.markers.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_13_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_13_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_13_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_13_of_Algorithm/.syncinfo.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_13_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_13_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_15_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_15_of_Algorithm/.markers.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_15_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_15_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_15_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_15_of_Algorithm/.syncinfo.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_15_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_15_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_16_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_16_of_Algorithm/.markers.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_16_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_16_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_16_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_16_of_Algorithm/.syncinfo.snap
index 39a1322..766ddb4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_16_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_16_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_22_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_22_of_Algorithm/.markers.snap
index 7487dcb..0eec99a 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_22_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_22_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_22_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_22_of_Algorithm/.syncinfo.snap
index 8e9cfc7..f6dc3a4 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_22_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_22_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_23_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_23_of_Algorithm/.markers.snap
index ef1cd04..fd2284e 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_23_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_23_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_23_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_23_of_Algorithm/.syncinfo.snap
index 5e504b3..f4cb862 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_23_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_23_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_24_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_24_of_Algorithm/.markers.snap
index 879fbb7..96488ad 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_24_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_24_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_24_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_24_of_Algorithm/.syncinfo.snap
index 0b992ea..464a957 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_24_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_24_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_25_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_25_of_Algorithm/.markers.snap
index d835df1..3873ade 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_25_of_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_25_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_25_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_25_of_Algorithm/.syncinfo.snap
index d835df1..3873ade 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_25_of_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_25_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_26_0f_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_26_0f_Algorithm/.markers.snap
index 150a164..b18e8e2 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_26_0f_Algorithm/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_26_0f_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_26_0f_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_26_0f_Algorithm/.syncinfo.snap
index 3cf252b..d835df1 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_26_0f_Algorithm/.syncinfo.snap and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_26_0f_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_27_of_Algorithm/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_27_of_Algorithm/.markers.snap
new file mode 100644
index 0000000..91d6c54
Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_27_of_Algorithm/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_27_of_Algorithm/.syncinfo.snap b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_27_of_Algorithm/.syncinfo.snap
new file mode 100644
index 0000000..91d6c54
Binary files /dev/null and b/.metadata/.plugins/org.eclipse.core.resources/.projects/Chapter_27_of_Algorithm/.syncinfo.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap b/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap
index ea623e6..795cf87 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap and b/.metadata/.plugins/org.eclipse.core.resources/.root/.markers.snap differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
index 0737672..587fa3f 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources and b/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources differ
diff --git a/.metadata/.plugins/org.eclipse.core.resources/.snap b/.metadata/.plugins/org.eclipse.core.resources/.snap
index ab2aa04..908d3d6 100644
Binary files a/.metadata/.plugins/org.eclipse.core.resources/.snap and b/.metadata/.plugins/org.eclipse.core.resources/.snap differ
diff --git a/.metadata/.plugins/org.eclipse.jdt.core/3198679199.index b/.metadata/.plugins/org.eclipse.jdt.core/3198679199.index
new file mode 100644
index 0000000..5fe1ed0
Binary files /dev/null and b/.metadata/.plugins/org.eclipse.jdt.core/3198679199.index differ
diff --git a/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt b/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
index 135e5fc..614bab1 100644
--- a/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
+++ b/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
@@ -1,6 +1,7 @@
INDEX VERSION 1.126+/home/liyafei/test/IntroductionToAlgorithm/.metadata/.plugins/org.eclipse.jdt.core
852849552.index
973379314.index
+3198679199.index
3390519334.index
3267812676.index
2802546564.index
diff --git a/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat b/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat
index 972df0d..997702b 100644
Binary files a/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat and b/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat differ
diff --git a/Chapter_27_of_Algorithm/.classpath b/Chapter_27_of_Algorithm/.classpath
new file mode 100644
index 0000000..fb565a5
--- /dev/null
+++ b/Chapter_27_of_Algorithm/.classpath
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/Chapter_27_of_Algorithm/.project b/Chapter_27_of_Algorithm/.project
new file mode 100644
index 0000000..16958b4
--- /dev/null
+++ b/Chapter_27_of_Algorithm/.project
@@ -0,0 +1,17 @@
+
+
+ Chapter_27_of_Algorithm
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/Chapter_27_of_Algorithm/.settings/org.eclipse.jdt.core.prefs b/Chapter_27_of_Algorithm/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..7341ab1
--- /dev/null
+++ b/Chapter_27_of_Algorithm/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.7