From 43bb45bceb95305b70a79e550d2fbb32f9509121 Mon Sep 17 00:00:00 2001
From: Yudong Jin
Date: Tue, 26 Mar 2024 02:49:26 +0800
Subject: [PATCH] Several bug fixes and improvements (#1178)
* Update pythontutor block with the latest code
* Move docs-en to en/docs
* Move mkdocs.yml and README to en folder
* Fix en/mkdocs.yml
* Update the landing page
* Fix the glossary
* Reduce the font size of the code block tabs
* Add Kotlin blocks to en/docs
* Fix the code link in en/.../deque.md
* Fix the EN README link
---
README.md | 2 +-
.../time_complexity.md | 6 +--
.../pythontutor/chapter_sorting/quick_sort.md | 2 +-
docs-en/index.assets/conceptual_rendering.png | Bin 83827 -> 0 bytes
docs-en/index.assets/hello_algo_header.png | Bin 71830 -> 0 bytes
docs-en/index.assets/hello_algo_hero.jpg | Bin 264948 -> 0 bytes
docs/chapter_appendix/terminology.md | 2 +-
README-en.md => en/README.md | 0
.../docs}/assets/covers/chapter_appendix.jpg | Bin
.../covers/chapter_array_and_linkedlist.jpg | Bin
.../assets/covers/chapter_backtracking.jpg | Bin
.../covers/chapter_complexity_analysis.jpg | Bin
.../assets/covers/chapter_data_structure.jpg | Bin
.../covers/chapter_divide_and_conquer.jpg | Bin
.../covers/chapter_dynamic_programming.jpg | Bin
.../docs}/assets/covers/chapter_graph.jpg | Bin
.../docs}/assets/covers/chapter_greedy.jpg | Bin
.../docs}/assets/covers/chapter_hashing.jpg | Bin
.../docs}/assets/covers/chapter_heap.jpg | Bin
.../assets/covers/chapter_introduction.jpg | Bin
.../docs}/assets/covers/chapter_preface.jpg | Bin
.../docs}/assets/covers/chapter_searching.jpg | Bin
.../docs}/assets/covers/chapter_sorting.jpg | Bin
.../assets/covers/chapter_stack_and_queue.jpg | Bin
.../docs}/assets/covers/chapter_tree.jpg | Bin
.../array.assets/array_definition.png | Bin
.../array.assets/array_insert_element.png | Bin
.../array_memory_location_calculation.png | Bin
.../array.assets/array_remove_element.png | Bin
.../chapter_array_and_linkedlist/array.md | 6 +++
.../chapter_array_and_linkedlist/index.md | 0
.../linkedlist_common_types.png | Bin
.../linkedlist_definition.png | Bin
.../linkedlist_insert_node.png | Bin
.../linkedlist_remove_node.png | Bin
.../linked_list.md | 18 +++++++++
.../chapter_array_and_linkedlist/list.md | 36 ++++++++++++++++++
.../computer_storage_devices.png | Bin
.../ram_and_cache.assets/storage_pyramid.png | Bin
.../ram_and_cache.md | 0
.../chapter_array_and_linkedlist/summary.md | 0
.../chapter_computational_complexity/index.md | 0
.../iteration.png | Bin
.../nested_iteration.png | Bin
.../recursion_sum.png | Bin
.../recursion_sum_depth.png | Bin
.../recursion_tree.png | Bin
.../tail_recursion_sum.png | Bin
.../iteration_and_recursion.md | 0
.../performance_evaluation.md | 0
.../space_complexity_common_types.png | Bin
.../space_complexity_exponential.png | Bin
.../space_complexity_recursive_linear.png | Bin
.../space_complexity_recursive_quadratic.png | Bin
.../space_complexity.assets/space_types.png | Bin
.../space_complexity.md | 18 +++++++++
.../summary.md | 0
.../asymptotic_upper_bound.png | Bin
.../time_complexity_common_types.png | Bin
...e_complexity_constant_linear_quadratic.png | Bin
.../time_complexity_exponential.png | Bin
.../time_complexity_factorial.png | Bin
.../time_complexity_logarithmic.png | Bin
.../time_complexity_logarithmic_linear.png | Bin
.../time_complexity_simple_example.png | Bin
.../time_complexity.md | 24 ++++++++++++
.../basic_data_types.md | 6 +++
.../character_encoding.assets/ascii_table.png | Bin
.../unicode_hello_algo.png | Bin
.../utf-8_hello_algo.png | Bin
.../character_encoding.md | 0
.../classification_logic_structure.png | Bin
.../classification_phisical_structure.png | Bin
.../computer_memory_location.png | Bin
.../classification_of_data_structure.md | 0
.../docs}/chapter_data_structure/index.md | 0
.../1s_2s_complement.png | Bin
.../number_encoding.assets/ieee_754_float.png | Bin
.../chapter_data_structure/number_encoding.md | 0
.../docs}/chapter_data_structure/summary.md | 0
.../hash_collision_best_worst_condition.png | Bin
.../docs}/chapter_hashing/hash_algorithm.md | 6 +++
.../hash_table_chaining.png | Bin
.../hash_table_linear_probing.png | Bin
.../hash_table_open_addressing_deletion.png | Bin
.../docs}/chapter_hashing/hash_collision.md | 0
.../hash_map.assets/hash_collision.png | Bin
.../hash_map.assets/hash_function.png | Bin
.../hash_map.assets/hash_table_lookup.png | Bin
.../hash_map.assets/hash_table_reshash.png | Bin
.../docs}/chapter_hashing/hash_map.md | 12 ++++++
{docs-en => en/docs}/chapter_hashing/index.md | 0
.../docs}/chapter_hashing/summary.md | 0
.../binary_search_dictionary_step1.png | Bin
.../binary_search_dictionary_step2.png | Bin
.../binary_search_dictionary_step3.png | Bin
.../binary_search_dictionary_step4.png | Bin
.../binary_search_dictionary_step5.png | Bin
.../greedy_change.png | Bin
.../playing_cards_sorting.png | Bin
.../algorithms_are_everywhere.md | 0
.../docs}/chapter_introduction/index.md | 0
.../docs}/chapter_introduction/summary.md | 0
.../what_is_dsa.assets/assembling_blocks.png | Bin
...p_between_data_structure_and_algorithm.png | Bin
.../docs}/chapter_introduction/what_is_dsa.md | 0
.../hello_algo_mindmap.png | Bin
.../docs}/chapter_preface/about_the_book.md | 0
{docs-en => en/docs}/chapter_preface/index.md | 0
.../suggestions.assets/code_md_to_repo.png | Bin
.../suggestions.assets/download_code.png | Bin
.../suggestions.assets/learning_route.png | Bin
.../pythontutor_example.png | Bin
.../docs}/chapter_preface/suggestions.md | 13 +++++++
.../docs}/chapter_preface/summary.md | 0
.../deque.assets/array_deque_step1.png | Bin
.../array_deque_step2_push_last.png | Bin
.../array_deque_step3_push_first.png | Bin
.../array_deque_step4_pop_last.png | Bin
.../array_deque_step5_pop_first.png | Bin
.../deque.assets/deque_operations.png | Bin
.../deque.assets/linkedlist_deque_step1.png | Bin
.../linkedlist_deque_step2_push_last.png | Bin
.../linkedlist_deque_step3_push_first.png | Bin
.../linkedlist_deque_step4_pop_last.png | Bin
.../linkedlist_deque_step5_pop_first.png | Bin
.../docs}/chapter_stack_and_queue/deque.md | 8 +++-
.../docs}/chapter_stack_and_queue/index.md | 0
.../queue.assets/array_queue_step1.png | Bin
.../queue.assets/array_queue_step2_push.png | Bin
.../queue.assets/array_queue_step3_pop.png | Bin
.../queue.assets/linkedlist_queue_step1.png | Bin
.../linkedlist_queue_step2_push.png | Bin
.../linkedlist_queue_step3_pop.png | Bin
.../queue.assets/queue_operations.png | Bin
.../docs}/chapter_stack_and_queue/queue.md | 6 +++
.../stack.assets/array_stack_step1.png | Bin
.../stack.assets/array_stack_step2_push.png | Bin
.../stack.assets/array_stack_step3_pop.png | Bin
.../stack.assets/linkedlist_stack_step1.png | Bin
.../linkedlist_stack_step2_push.png | Bin
.../linkedlist_stack_step3_pop.png | Bin
.../stack.assets/stack_operations.png | Bin
.../docs}/chapter_stack_and_queue/stack.md | 6 +++
.../docs}/chapter_stack_and_queue/summary.md | 0
.../docs}/index.assets/animation.gif | Bin
.../docs}/index.assets/animation_dark.gif | Bin
.../index.assets/btn_chinese_edition.svg | 0
.../index.assets/btn_chinese_edition_dark.svg | 0
.../docs}/index.assets/btn_download_pdf.svg | 0
.../index.assets/btn_download_pdf_dark.svg | 0
.../docs}/index.assets/btn_read_online.svg | 0
.../index.assets/btn_read_online_dark.svg | 0
{docs-en => en/docs}/index.assets/comment.gif | Bin
en/docs/index.assets/hello_algo_header.png | Bin 0 -> 140430 bytes
.../index.assets/hello_algo_mindmap_tp.png | Bin
.../docs}/index.assets/running_code.gif | Bin
.../docs}/index.assets/running_code_dark.gif | Bin
{docs-en => en/docs}/index.md | 2 -
mkdocs-en.yml => en/mkdocs.yml | 9 +++--
overrides/stylesheets/extra.css | 5 +++
161 files changed, 174 insertions(+), 13 deletions(-)
delete mode 100644 docs-en/index.assets/conceptual_rendering.png
delete mode 100644 docs-en/index.assets/hello_algo_header.png
delete mode 100644 docs-en/index.assets/hello_algo_hero.jpg
rename README-en.md => en/README.md (100%)
rename {docs-en => en/docs}/assets/covers/chapter_appendix.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_array_and_linkedlist.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_backtracking.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_complexity_analysis.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_data_structure.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_divide_and_conquer.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_dynamic_programming.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_graph.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_greedy.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_hashing.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_heap.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_introduction.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_preface.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_searching.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_sorting.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_stack_and_queue.jpg (100%)
rename {docs-en => en/docs}/assets/covers/chapter_tree.jpg (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/array.assets/array_definition.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/array.assets/array_insert_element.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/array.assets/array_memory_location_calculation.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/array.assets/array_remove_element.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/array.md (99%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/index.md (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/linked_list.assets/linkedlist_common_types.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/linked_list.assets/linkedlist_definition.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/linked_list.assets/linkedlist_insert_node.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/linked_list.assets/linkedlist_remove_node.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/linked_list.md (99%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/list.md (98%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/ram_and_cache.assets/computer_storage_devices.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/ram_and_cache.assets/storage_pyramid.png (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/ram_and_cache.md (100%)
rename {docs-en => en/docs}/chapter_array_and_linkedlist/summary.md (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/index.md (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/iteration_and_recursion.assets/iteration.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/iteration_and_recursion.assets/nested_iteration.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/iteration_and_recursion.assets/recursion_sum.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/iteration_and_recursion.assets/recursion_sum_depth.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/iteration_and_recursion.assets/recursion_tree.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/iteration_and_recursion.assets/tail_recursion_sum.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/iteration_and_recursion.md (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/performance_evaluation.md (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/space_complexity.assets/space_complexity_common_types.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/space_complexity.assets/space_complexity_exponential.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/space_complexity.assets/space_complexity_recursive_linear.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/space_complexity.assets/space_complexity_recursive_quadratic.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/space_complexity.assets/space_types.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/space_complexity.md (99%)
rename {docs-en => en/docs}/chapter_computational_complexity/summary.md (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/time_complexity.assets/asymptotic_upper_bound.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/time_complexity.assets/time_complexity_common_types.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/time_complexity.assets/time_complexity_constant_linear_quadratic.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/time_complexity.assets/time_complexity_exponential.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/time_complexity.assets/time_complexity_factorial.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/time_complexity.assets/time_complexity_logarithmic_linear.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/time_complexity.assets/time_complexity_simple_example.png (100%)
rename {docs-en => en/docs}/chapter_computational_complexity/time_complexity.md (99%)
rename {docs-en => en/docs}/chapter_data_structure/basic_data_types.md (99%)
rename {docs-en => en/docs}/chapter_data_structure/character_encoding.assets/ascii_table.png (100%)
rename {docs-en => en/docs}/chapter_data_structure/character_encoding.assets/unicode_hello_algo.png (100%)
rename {docs-en => en/docs}/chapter_data_structure/character_encoding.assets/utf-8_hello_algo.png (100%)
rename {docs-en => en/docs}/chapter_data_structure/character_encoding.md (100%)
rename {docs-en => en/docs}/chapter_data_structure/classification_of_data_structure.assets/classification_logic_structure.png (100%)
rename {docs-en => en/docs}/chapter_data_structure/classification_of_data_structure.assets/classification_phisical_structure.png (100%)
rename {docs-en => en/docs}/chapter_data_structure/classification_of_data_structure.assets/computer_memory_location.png (100%)
rename {docs-en => en/docs}/chapter_data_structure/classification_of_data_structure.md (100%)
rename {docs-en => en/docs}/chapter_data_structure/index.md (100%)
rename {docs-en => en/docs}/chapter_data_structure/number_encoding.assets/1s_2s_complement.png (100%)
rename {docs-en => en/docs}/chapter_data_structure/number_encoding.assets/ieee_754_float.png (100%)
rename {docs-en => en/docs}/chapter_data_structure/number_encoding.md (100%)
rename {docs-en => en/docs}/chapter_data_structure/summary.md (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_algorithm.assets/hash_collision_best_worst_condition.png (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_algorithm.md (99%)
rename {docs-en => en/docs}/chapter_hashing/hash_collision.assets/hash_table_chaining.png (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_collision.assets/hash_table_linear_probing.png (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_collision.assets/hash_table_open_addressing_deletion.png (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_collision.md (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_map.assets/hash_collision.png (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_map.assets/hash_function.png (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_map.assets/hash_table_lookup.png (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_map.assets/hash_table_reshash.png (100%)
rename {docs-en => en/docs}/chapter_hashing/hash_map.md (99%)
rename {docs-en => en/docs}/chapter_hashing/index.md (100%)
rename {docs-en => en/docs}/chapter_hashing/summary.md (100%)
rename {docs-en => en/docs}/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step1.png (100%)
rename {docs-en => en/docs}/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step2.png (100%)
rename {docs-en => en/docs}/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step3.png (100%)
rename {docs-en => en/docs}/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step4.png (100%)
rename {docs-en => en/docs}/chapter_introduction/algorithms_are_everywhere.assets/binary_search_dictionary_step5.png (100%)
rename {docs-en => en/docs}/chapter_introduction/algorithms_are_everywhere.assets/greedy_change.png (100%)
rename {docs-en => en/docs}/chapter_introduction/algorithms_are_everywhere.assets/playing_cards_sorting.png (100%)
rename {docs-en => en/docs}/chapter_introduction/algorithms_are_everywhere.md (100%)
rename {docs-en => en/docs}/chapter_introduction/index.md (100%)
rename {docs-en => en/docs}/chapter_introduction/summary.md (100%)
rename {docs-en => en/docs}/chapter_introduction/what_is_dsa.assets/assembling_blocks.png (100%)
rename {docs-en => en/docs}/chapter_introduction/what_is_dsa.assets/relationship_between_data_structure_and_algorithm.png (100%)
rename {docs-en => en/docs}/chapter_introduction/what_is_dsa.md (100%)
rename {docs-en => en/docs}/chapter_preface/about_the_book.assets/hello_algo_mindmap.png (100%)
rename {docs-en => en/docs}/chapter_preface/about_the_book.md (100%)
rename {docs-en => en/docs}/chapter_preface/index.md (100%)
rename {docs-en => en/docs}/chapter_preface/suggestions.assets/code_md_to_repo.png (100%)
rename {docs-en => en/docs}/chapter_preface/suggestions.assets/download_code.png (100%)
rename {docs-en => en/docs}/chapter_preface/suggestions.assets/learning_route.png (100%)
rename {docs-en => en/docs}/chapter_preface/suggestions.assets/pythontutor_example.png (100%)
rename {docs-en => en/docs}/chapter_preface/suggestions.md (97%)
rename {docs-en => en/docs}/chapter_preface/summary.md (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/array_deque_step1.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/array_deque_step2_push_last.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/array_deque_step3_push_first.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/array_deque_step4_pop_last.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/array_deque_step5_pop_first.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/deque_operations.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/linkedlist_deque_step1.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/linkedlist_deque_step2_push_last.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/linkedlist_deque_step3_push_first.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/linkedlist_deque_step4_pop_last.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.assets/linkedlist_deque_step5_pop_first.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/deque.md (99%)
rename {docs-en => en/docs}/chapter_stack_and_queue/index.md (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/queue.assets/array_queue_step1.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/queue.assets/array_queue_step2_push.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/queue.assets/array_queue_step3_pop.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/queue.assets/linkedlist_queue_step1.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/queue.assets/linkedlist_queue_step2_push.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/queue.assets/linkedlist_queue_step3_pop.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/queue.assets/queue_operations.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/queue.md (99%)
rename {docs-en => en/docs}/chapter_stack_and_queue/stack.assets/array_stack_step1.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/stack.assets/array_stack_step2_push.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/stack.assets/array_stack_step3_pop.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/stack.assets/linkedlist_stack_step1.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/stack.assets/linkedlist_stack_step2_push.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/stack.assets/linkedlist_stack_step3_pop.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/stack.assets/stack_operations.png (100%)
rename {docs-en => en/docs}/chapter_stack_and_queue/stack.md (99%)
rename {docs-en => en/docs}/chapter_stack_and_queue/summary.md (100%)
rename {docs-en => en/docs}/index.assets/animation.gif (100%)
rename {docs-en => en/docs}/index.assets/animation_dark.gif (100%)
rename {docs-en => en/docs}/index.assets/btn_chinese_edition.svg (100%)
rename {docs-en => en/docs}/index.assets/btn_chinese_edition_dark.svg (100%)
rename {docs-en => en/docs}/index.assets/btn_download_pdf.svg (100%)
rename {docs-en => en/docs}/index.assets/btn_download_pdf_dark.svg (100%)
rename {docs-en => en/docs}/index.assets/btn_read_online.svg (100%)
rename {docs-en => en/docs}/index.assets/btn_read_online_dark.svg (100%)
rename {docs-en => en/docs}/index.assets/comment.gif (100%)
create mode 100644 en/docs/index.assets/hello_algo_header.png
rename {docs-en => en/docs}/index.assets/hello_algo_mindmap_tp.png (100%)
rename {docs-en => en/docs}/index.assets/running_code.gif (100%)
rename {docs-en => en/docs}/index.assets/running_code_dark.gif (100%)
rename {docs-en => en/docs}/index.md (99%)
rename mkdocs-en.yml => en/mkdocs.yml (98%)
diff --git a/README.md b/README.md
index e35ec41dc..758c260b7 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@
-
+
diff --git a/codes/pythontutor/chapter_computational_complexity/time_complexity.md b/codes/pythontutor/chapter_computational_complexity/time_complexity.md
index 0eb992ce3..d32a48260 100644
--- a/codes/pythontutor/chapter_computational_complexity/time_complexity.md
+++ b/codes/pythontutor/chapter_computational_complexity/time_complexity.md
@@ -26,13 +26,13 @@ https://pythontutor.com/render.html#code=def%20exponential%28n%29%20-%3E%20int%3
https://pythontutor.com/render.html#code=def%20exp_recur%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E6%8C%87%E6%95%B0%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%22%22%22%0A%20%20%20%20if%20n%20%3D%3D%201%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20return%20exp_recur%28n%20-%201%29%20%2B%20exp_recur%28n%20-%201%29%20%2B%201%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%207%0A%20%20%20%20print%28%22%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B0%8F%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20exp_recur%28n%29%0A%20%20%20%20print%28%22%E6%8C%87%E6%95%B0%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%E7%9A%84%E6%93%8D%E4%BD%9C%E6%95%B0%E9%87%8F%20%3D%22,%20count%29&cumulative=false&curInstr=3&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
-https://pythontutor.com/render.html#code=def%20logarithmic%28n%3A%20float%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E5%BE%AA%E7%8E%AF%E5%AE%9E%E7%8E%B0%EF%BC%89%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20while%20n%20%3E%201%3A%0A%20%20%20%20%20%20%20%20n%20%3D%20n%20/%202%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B0%8F%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20logarithmic%28n%29%0A%20%20%20%20print%28%22%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E5%BE%AA%E7%8E%AF%E5%AE%9E%E7%8E%B0%EF%BC%89%E7%9A%84%E6%93%8D%E4%BD%9C%E6%95%B0%E9%87%8F%20%3D%22,%20count%29&cumulative=false&curInstr=3&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
+https://pythontutor.com/render.html#code=def%20logarithmic%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E5%BE%AA%E7%8E%AF%E5%AE%9E%E7%8E%B0%EF%BC%89%22%22%22%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20while%20n%20%3E%201%3A%0A%20%20%20%20%20%20%20%20n%20%3D%20n%20/%202%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B0%8F%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20logarithmic%28n%29%0A%20%20%20%20print%28%22%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E5%BE%AA%E7%8E%AF%E5%AE%9E%E7%8E%B0%EF%BC%89%E7%9A%84%E6%93%8D%E4%BD%9C%E6%95%B0%E9%87%8F%20%3D%22,%20count%29&cumulative=false&curInstr=3&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
-https://pythontutor.com/render.html#code=def%20log_recur%28n%3A%20float%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%22%22%22%0A%20%20%20%20if%20n%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20return%200%0A%20%20%20%20return%20log_recur%28n%20/%202%29%20%2B%201%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B0%8F%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20log_recur%28n%29%0A%20%20%20%20print%28%22%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%E7%9A%84%E6%93%8D%E4%BD%9C%E6%95%B0%E9%87%8F%20%3D%22,%20count%29&cumulative=false&curInstr=3&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
+https://pythontutor.com/render.html#code=def%20log_recur%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%22%22%22%0A%20%20%20%20if%20n%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20return%200%0A%20%20%20%20return%20log_recur%28n%20/%202%29%20%2B%201%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B0%8F%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20log_recur%28n%29%0A%20%20%20%20print%28%22%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%E7%9A%84%E6%93%8D%E4%BD%9C%E6%95%B0%E9%87%8F%20%3D%22,%20count%29&cumulative=false&curInstr=4&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
-https://pythontutor.com/render.html#code=def%20linear_log_recur%28n%3A%20float%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E7%BA%BF%E6%80%A7%E5%AF%B9%E6%95%B0%E9%98%B6%22%22%22%0A%20%20%20%20if%20n%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20count%20%3D%20linear_log_recur%28n%20//%202%29%20%2B%20linear_log_recur%28n%20//%202%29%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B0%8F%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20linear_log_recur%28n%29%0A%20%20%20%20print%28%22%E7%BA%BF%E6%80%A7%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%E7%9A%84%E6%93%8D%E4%BD%9C%E6%95%B0%E9%87%8F%20%3D%22,%20count%29&cumulative=false&curInstr=3&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
+https://pythontutor.com/render.html#code=def%20linear_log_recur%28n%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E7%BA%BF%E6%80%A7%E5%AF%B9%E6%95%B0%E9%98%B6%22%22%22%0A%20%20%20%20if%20n%20%3C%3D%201%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20count%20%3D%20linear_log_recur%28n%20//%202%29%20%2B%20linear_log_recur%28n%20//%202%29%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%201%0A%20%20%20%20return%20count%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%208%0A%20%20%20%20print%28%22%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B0%8F%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20linear_log_recur%28n%29%0A%20%20%20%20print%28%22%E7%BA%BF%E6%80%A7%E5%AF%B9%E6%95%B0%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%E7%9A%84%E6%93%8D%E4%BD%9C%E6%95%B0%E9%87%8F%20%3D%22,%20count%29&cumulative=false&curInstr=4&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
https://pythontutor.com/render.html#code=def%20factorial_recur%28n%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E9%98%B6%E4%B9%98%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%22%22%22%0A%20%20%20%20if%20n%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20return%201%0A%20%20%20%20count%20%3D%200%0A%20%20%20%20%23%20%E4%BB%8E%201%20%E4%B8%AA%E5%88%86%E8%A3%82%E5%87%BA%20n%20%E4%B8%AA%0A%20%20%20%20for%20_%20in%20range%28n%29%3A%0A%20%20%20%20%20%20%20%20count%20%2B%3D%20factorial_recur%28n%20-%201%29%0A%20%20%20%20return%20count%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20n%20%3D%204%0A%20%20%20%20print%28%22%E8%BE%93%E5%85%A5%E6%95%B0%E6%8D%AE%E5%A4%A7%E5%B0%8F%20n%20%3D%22,%20n%29%0A%0A%20%20%20%20count%20%3D%20factorial_recur%28n%29%0A%20%20%20%20print%28%22%E9%98%B6%E4%B9%98%E9%98%B6%EF%BC%88%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%EF%BC%89%E7%9A%84%E6%93%8D%E4%BD%9C%E6%95%B0%E9%87%8F%20%3D%22,%20count%29&cumulative=false&curInstr=3&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
diff --git a/codes/pythontutor/chapter_sorting/quick_sort.md b/codes/pythontutor/chapter_sorting/quick_sort.md
index c0347cf53..727217026 100644
--- a/codes/pythontutor/chapter_sorting/quick_sort.md
+++ b/codes/pythontutor/chapter_sorting/quick_sort.md
@@ -11,7 +11,7 @@ https://pythontutor.com/render.html#code=def%20partition%28nums%3A%20list%5Bint%
https://pythontutor.com/render.html#code=def%20partition%28nums%3A%20list%5Bint%5D,%20left%3A%20int,%20right%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E5%93%A8%E5%85%B5%E5%88%92%E5%88%86%22%22%22%0A%20%20%20%20%23%20%E4%BB%A5%20nums%5Bleft%5D%20%E4%B8%BA%E5%9F%BA%E5%87%86%E6%95%B0%0A%20%20%20%20i,%20j%20%3D%20left,%20right%0A%20%20%20%20while%20i%20%3C%20j%3A%0A%20%20%20%20%20%20%20%20while%20i%20%3C%20j%20and%20nums%5Bj%5D%20%3E%3D%20nums%5Bleft%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20j%20-%3D%201%20%20%23%20%E4%BB%8E%E5%8F%B3%E5%90%91%E5%B7%A6%E6%89%BE%E9%A6%96%E4%B8%AA%E5%B0%8F%E4%BA%8E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E5%85%83%E7%B4%A0%0A%20%20%20%20%20%20%20%20while%20i%20%3C%20j%20and%20nums%5Bi%5D%20%3C%3D%20nums%5Bleft%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20i%20%2B%3D%201%20%20%23%20%E4%BB%8E%E5%B7%A6%E5%90%91%E5%8F%B3%E6%89%BE%E9%A6%96%E4%B8%AA%E5%A4%A7%E4%BA%8E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E5%85%83%E7%B4%A0%0A%20%20%20%20%20%20%20%20%23%20%E5%85%83%E7%B4%A0%E4%BA%A4%E6%8D%A2%0A%20%20%20%20%20%20%20%20nums%5Bi%5D,%20nums%5Bj%5D%20%3D%20nums%5Bj%5D,%20nums%5Bi%5D%0A%20%20%20%20%23%20%E5%B0%86%E5%9F%BA%E5%87%86%E6%95%B0%E4%BA%A4%E6%8D%A2%E8%87%B3%E4%B8%A4%E5%AD%90%E6%95%B0%E7%BB%84%E7%9A%84%E5%88%86%E7%95%8C%E7%BA%BF%0A%20%20%20%20nums%5Bi%5D,%20nums%5Bleft%5D%20%3D%20nums%5Bleft%5D,%20nums%5Bi%5D%0A%20%20%20%20return%20i%20%20%23%20%E8%BF%94%E5%9B%9E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E7%B4%A2%E5%BC%95%0A%0Adef%20quick_sort%28nums%3A%20list%5Bint%5D,%20left%3A%20int,%20right%3A%20int%29%3A%0A%20%20%20%20%22%22%22%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%22%22%22%0A%20%20%20%20%23%20%E5%AD%90%E6%95%B0%E7%BB%84%E9%95%BF%E5%BA%A6%E4%B8%BA%201%20%E6%97%B6%E7%BB%88%E6%AD%A2%E9%80%92%E5%BD%92%0A%20%20%20%20if%20left%20%3E%3D%20right%3A%0A%20%20%20%20%20%20%20%20return%0A%20%20%20%20%23%20%E5%93%A8%E5%85%B5%E5%88%92%E5%88%86%0A%20%20%20%20pivot%20%3D%20partition%28nums,%20left,%20right%29%0A%20%20%20%20%23%20%E9%80%92%E5%BD%92%E5%B7%A6%E5%AD%90%E6%95%B0%E7%BB%84%E3%80%81%E5%8F%B3%E5%AD%90%E6%95%B0%E7%BB%84%0A%20%20%20%20quick_sort%28nums,%20left,%20pivot%20-%201%29%0A%20%20%20%20quick_sort%28nums,%20pivot%20%2B%201,%20right%29%0A%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20%23%20%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%0A%20%20%20%20nums%20%3D%20%5B2,%204,%201,%200,%203,%205%5D%0A%20%20%20%20quick_sort%28nums,%200,%20len%28nums%29%20-%201%29%0A%20%20%20%20print%28%22%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%E5%AE%8C%E6%88%90%E5%90%8E%20nums%20%3D%22,%20nums%29&cumulative=false&curInstr=5&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
-https://pythontutor.com/render.html#code=def%20median_three%28nums%3A%20list%5Bint%5D,%20left%3A%20int,%20mid%3A%20int,%20right%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E9%80%89%E5%8F%96%E4%B8%89%E4%B8%AA%E5%80%99%E9%80%89%E5%85%83%E7%B4%A0%E7%9A%84%E4%B8%AD%E4%BD%8D%E6%95%B0%22%22%22%0A%20%20%20%20%23%20%E6%AD%A4%E5%A4%84%E4%BD%BF%E7%94%A8%E5%BC%82%E6%88%96%E8%BF%90%E7%AE%97%E6%9D%A5%E7%AE%80%E5%8C%96%E4%BB%A3%E7%A0%81%0A%20%20%20%20%23%20%E5%BC%82%E6%88%96%E8%A7%84%E5%88%99%E4%B8%BA%200%20%5E%200%20%3D%201%20%5E%201%20%3D%200,%200%20%5E%201%20%3D%201%20%5E%200%20%3D%201%0A%20%20%20%20if%20%28nums%5Bleft%5D%20%3C%20nums%5Bmid%5D%29%20%5E%20%28nums%5Bleft%5D%20%3C%20nums%5Bright%5D%29%3A%0A%20%20%20%20%20%20%20%20return%20left%0A%20%20%20%20elif%20%28nums%5Bmid%5D%20%3C%20nums%5Bleft%5D%29%20%5E%20%28nums%5Bmid%5D%20%3C%20nums%5Bright%5D%29%3A%0A%20%20%20%20%20%20%20%20return%20mid%0A%20%20%20%20return%20right%0A%0Adef%20partition%28nums%3A%20list%5Bint%5D,%20left%3A%20int,%20right%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E5%93%A8%E5%85%B5%E5%88%92%E5%88%86%EF%BC%88%E4%B8%89%E6%95%B0%E5%8F%96%E4%B8%AD%E5%80%BC%EF%BC%89%22%22%22%0A%20%20%20%20%23%20%E4%BB%A5%20nums%5Bleft%5D%20%E4%B8%BA%E5%9F%BA%E5%87%86%E6%95%B0%0A%20%20%20%20med%20%3D%20median_three%28nums,%20left,%20%28left%20%2B%20right%29%20//%202,%20right%29%0A%20%20%20%20%23%20%E5%B0%86%E4%B8%AD%E4%BD%8D%E6%95%B0%E4%BA%A4%E6%8D%A2%E8%87%B3%E6%95%B0%E7%BB%84%E6%9C%80%E5%B7%A6%E7%AB%AF%0A%20%20%20%20nums%5Bleft%5D,%20nums%5Bmed%5D%20%3D%20nums%5Bmed%5D,%20nums%5Bleft%5D%0A%20%20%20%20%23%20%E4%BB%A5%20nums%5Bleft%5D%20%E4%B8%BA%E5%9F%BA%E5%87%86%E6%95%B0%0A%20%20%20%20i,%20j%20%3D%20left,%20right%0A%20%20%20%20while%20i%20%3C%20j%3A%0A%20%20%20%20%20%20%20%20while%20i%20%3C%20j%20and%20nums%5Bj%5D%20%3E%3D%20nums%5Bleft%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20j%20-%3D%201%20%20%23%20%E4%BB%8E%E5%8F%B3%E5%90%91%E5%B7%A6%E6%89%BE%E9%A6%96%E4%B8%AA%E5%B0%8F%E4%BA%8E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E5%85%83%E7%B4%A0%0A%20%20%20%20%20%20%20%20while%20i%20%3C%20j%20and%20nums%5Bi%5D%20%3C%3D%20nums%5Bleft%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20i%20%2B%3D%201%20%20%23%20%E4%BB%8E%E5%B7%A6%E5%90%91%E5%8F%B3%E6%89%BE%E9%A6%96%E4%B8%AA%E5%A4%A7%E4%BA%8E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E5%85%83%E7%B4%A0%0A%20%20%20%20%20%20%20%20%23%20%E5%85%83%E7%B4%A0%E4%BA%A4%E6%8D%A2%0A%20%20%20%20%20%20%20%20nums%5Bi%5D,%20nums%5Bj%5D%20%3D%20nums%5Bj%5D,%20nums%5Bi%5D%0A%20%20%20%20%23%20%E5%B0%86%E5%9F%BA%E5%87%86%E6%95%B0%E4%BA%A4%E6%8D%A2%E8%87%B3%E4%B8%A4%E5%AD%90%E6%95%B0%E7%BB%84%E7%9A%84%E5%88%86%E7%95%8C%E7%BA%BF%0A%20%20%20%20nums%5Bi%5D,%20nums%5Bleft%5D%20%3D%20nums%5Bleft%5D,%20nums%5Bi%5D%0A%20%20%20%20return%20i%20%20%23%20%E8%BF%94%E5%9B%9E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E7%B4%A2%E5%BC%95%0A%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20%23%20%E4%B8%AD%E4%BD%8D%E5%9F%BA%E5%87%86%E6%95%B0%E4%BC%98%E5%8C%96%0A%20%20%20%20nums%20%3D%20%5B2,%204,%201,%200,%203,%205%5D%0A%20%20%20%20partition%28nums,%200,%20len%28nums%29%20-%201%29%0A%20%20%20%20print%28%22%E5%93%A8%E5%85%B5%E5%88%92%E5%88%86%EF%BC%88%E4%B8%AD%E4%BD%8D%E5%9F%BA%E5%87%86%E6%95%B0%E4%BC%98%E5%8C%96%EF%BC%89%E5%AE%8C%E6%88%90%E5%90%8E%20nums%20%3D%22,%20nums%29&cumulative=false&curInstr=5&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
+https://pythontutor.com/render.html#code=def%20median_three%28nums%3A%20list%5Bint%5D,%20left%3A%20int,%20mid%3A%20int,%20right%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E9%80%89%E5%8F%96%E4%B8%89%E4%B8%AA%E5%80%99%E9%80%89%E5%85%83%E7%B4%A0%E7%9A%84%E4%B8%AD%E4%BD%8D%E6%95%B0%22%22%22%0A%20%20%20%20l,%20m,%20r%20%3D%20nums%5Bleft%5D,%20nums%5Bmid%5D,%20nums%5Bright%5D%0A%20%20%20%20if%20%28l%20%3C%3D%20m%20%3C%3D%20r%29%20or%20%28r%20%3C%3D%20m%20%3C%3D%20l%29%3A%0A%20%20%20%20%20%20%20%20return%20mid%20%20%23%20m%20%E5%9C%A8%20l%20%E5%92%8C%20r%20%E4%B9%8B%E9%97%B4%0A%20%20%20%20if%20%28m%20%3C%3D%20l%20%3C%3D%20r%29%20or%20%28r%20%3C%3D%20l%20%3C%3D%20m%29%3A%0A%20%20%20%20%20%20%20%20return%20left%20%20%23%20l%20%E5%9C%A8%20m%20%E5%92%8C%20r%20%E4%B9%8B%E9%97%B4%0A%20%20%20%20return%20right%0A%0Adef%20partition%28nums%3A%20list%5Bint%5D,%20left%3A%20int,%20right%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E5%93%A8%E5%85%B5%E5%88%92%E5%88%86%EF%BC%88%E4%B8%89%E6%95%B0%E5%8F%96%E4%B8%AD%E5%80%BC%EF%BC%89%22%22%22%0A%20%20%20%20%23%20%E4%BB%A5%20nums%5Bleft%5D%20%E4%B8%BA%E5%9F%BA%E5%87%86%E6%95%B0%0A%20%20%20%20med%20%3D%20median_three%28nums,%20left,%20%28left%20%2B%20right%29%20//%202,%20right%29%0A%20%20%20%20%23%20%E5%B0%86%E4%B8%AD%E4%BD%8D%E6%95%B0%E4%BA%A4%E6%8D%A2%E8%87%B3%E6%95%B0%E7%BB%84%E6%9C%80%E5%B7%A6%E7%AB%AF%0A%20%20%20%20nums%5Bleft%5D,%20nums%5Bmed%5D%20%3D%20nums%5Bmed%5D,%20nums%5Bleft%5D%0A%20%20%20%20%23%20%E4%BB%A5%20nums%5Bleft%5D%20%E4%B8%BA%E5%9F%BA%E5%87%86%E6%95%B0%0A%20%20%20%20i,%20j%20%3D%20left,%20right%0A%20%20%20%20while%20i%20%3C%20j%3A%0A%20%20%20%20%20%20%20%20while%20i%20%3C%20j%20and%20nums%5Bj%5D%20%3E%3D%20nums%5Bleft%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20j%20-%3D%201%20%20%23%20%E4%BB%8E%E5%8F%B3%E5%90%91%E5%B7%A6%E6%89%BE%E9%A6%96%E4%B8%AA%E5%B0%8F%E4%BA%8E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E5%85%83%E7%B4%A0%0A%20%20%20%20%20%20%20%20while%20i%20%3C%20j%20and%20nums%5Bi%5D%20%3C%3D%20nums%5Bleft%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20i%20%2B%3D%201%20%20%23%20%E4%BB%8E%E5%B7%A6%E5%90%91%E5%8F%B3%E6%89%BE%E9%A6%96%E4%B8%AA%E5%A4%A7%E4%BA%8E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E5%85%83%E7%B4%A0%0A%20%20%20%20%20%20%20%20%23%20%E5%85%83%E7%B4%A0%E4%BA%A4%E6%8D%A2%0A%20%20%20%20%20%20%20%20nums%5Bi%5D,%20nums%5Bj%5D%20%3D%20nums%5Bj%5D,%20nums%5Bi%5D%0A%20%20%20%20%23%20%E5%B0%86%E5%9F%BA%E5%87%86%E6%95%B0%E4%BA%A4%E6%8D%A2%E8%87%B3%E4%B8%A4%E5%AD%90%E6%95%B0%E7%BB%84%E7%9A%84%E5%88%86%E7%95%8C%E7%BA%BF%0A%20%20%20%20nums%5Bi%5D,%20nums%5Bleft%5D%20%3D%20nums%5Bleft%5D,%20nums%5Bi%5D%0A%20%20%20%20return%20i%20%20%23%20%E8%BF%94%E5%9B%9E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E7%B4%A2%E5%BC%95%0A%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20%23%20%E4%B8%AD%E4%BD%8D%E5%9F%BA%E5%87%86%E6%95%B0%E4%BC%98%E5%8C%96%0A%20%20%20%20nums%20%3D%20%5B2,%204,%201,%200,%203,%205%5D%0A%20%20%20%20partition%28nums,%200,%20len%28nums%29%20-%201%29%0A%20%20%20%20print%28%22%E5%93%A8%E5%85%B5%E5%88%92%E5%88%86%EF%BC%88%E4%B8%AD%E4%BD%8D%E5%9F%BA%E5%87%86%E6%95%B0%E4%BC%98%E5%8C%96%EF%BC%89%E5%AE%8C%E6%88%90%E5%90%8E%20nums%20%3D%22,%20nums%29&cumulative=false&curInstr=5&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
https://pythontutor.com/render.html#code=def%20partition%28nums%3A%20list%5Bint%5D,%20left%3A%20int,%20right%3A%20int%29%20-%3E%20int%3A%0A%20%20%20%20%22%22%22%E5%93%A8%E5%85%B5%E5%88%92%E5%88%86%22%22%22%0A%20%20%20%20%23%20%E4%BB%A5%20nums%5Bleft%5D%20%E4%B8%BA%E5%9F%BA%E5%87%86%E6%95%B0%0A%20%20%20%20i,%20j%20%3D%20left,%20right%0A%20%20%20%20while%20i%20%3C%20j%3A%0A%20%20%20%20%20%20%20%20while%20i%20%3C%20j%20and%20nums%5Bj%5D%20%3E%3D%20nums%5Bleft%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20j%20-%3D%201%20%20%23%20%E4%BB%8E%E5%8F%B3%E5%90%91%E5%B7%A6%E6%89%BE%E9%A6%96%E4%B8%AA%E5%B0%8F%E4%BA%8E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E5%85%83%E7%B4%A0%0A%20%20%20%20%20%20%20%20while%20i%20%3C%20j%20and%20nums%5Bi%5D%20%3C%3D%20nums%5Bleft%5D%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20i%20%2B%3D%201%20%20%23%20%E4%BB%8E%E5%B7%A6%E5%90%91%E5%8F%B3%E6%89%BE%E9%A6%96%E4%B8%AA%E5%A4%A7%E4%BA%8E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E5%85%83%E7%B4%A0%0A%20%20%20%20%20%20%20%20%23%20%E5%85%83%E7%B4%A0%E4%BA%A4%E6%8D%A2%0A%20%20%20%20%20%20%20%20nums%5Bi%5D,%20nums%5Bj%5D%20%3D%20nums%5Bj%5D,%20nums%5Bi%5D%0A%20%20%20%20%23%20%E5%B0%86%E5%9F%BA%E5%87%86%E6%95%B0%E4%BA%A4%E6%8D%A2%E8%87%B3%E4%B8%A4%E5%AD%90%E6%95%B0%E7%BB%84%E7%9A%84%E5%88%86%E7%95%8C%E7%BA%BF%0A%20%20%20%20nums%5Bi%5D,%20nums%5Bleft%5D%20%3D%20nums%5Bleft%5D,%20nums%5Bi%5D%0A%20%20%20%20return%20i%20%20%23%20%E8%BF%94%E5%9B%9E%E5%9F%BA%E5%87%86%E6%95%B0%E7%9A%84%E7%B4%A2%E5%BC%95%0A%0Adef%20quick_sort%28nums%3A%20list%5Bint%5D,%20left%3A%20int,%20right%3A%20int%29%3A%0A%20%20%20%20%22%22%22%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%EF%BC%88%E5%B0%BE%E9%80%92%E5%BD%92%E4%BC%98%E5%8C%96%EF%BC%89%22%22%22%0A%20%20%20%20%23%20%E5%AD%90%E6%95%B0%E7%BB%84%E9%95%BF%E5%BA%A6%E4%B8%BA%201%20%E6%97%B6%E7%BB%88%E6%AD%A2%0A%20%20%20%20while%20left%20%3C%20right%3A%0A%20%20%20%20%20%20%20%20%23%20%E5%93%A8%E5%85%B5%E5%88%92%E5%88%86%E6%93%8D%E4%BD%9C%0A%20%20%20%20%20%20%20%20pivot%20%3D%20partition%28nums,%20left,%20right%29%0A%20%20%20%20%20%20%20%20%23%20%E5%AF%B9%E4%B8%A4%E4%B8%AA%E5%AD%90%E6%95%B0%E7%BB%84%E4%B8%AD%E8%BE%83%E7%9F%AD%E7%9A%84%E9%82%A3%E4%B8%AA%E6%89%A7%E8%A1%8C%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%0A%20%20%20%20%20%20%20%20if%20pivot%20-%20left%20%3C%20right%20-%20pivot%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20quick_sort%28nums,%20left,%20pivot%20-%201%29%20%20%23%20%E9%80%92%E5%BD%92%E6%8E%92%E5%BA%8F%E5%B7%A6%E5%AD%90%E6%95%B0%E7%BB%84%0A%20%20%20%20%20%20%20%20%20%20%20%20left%20%3D%20pivot%20%2B%201%20%20%23%20%E5%89%A9%E4%BD%99%E6%9C%AA%E6%8E%92%E5%BA%8F%E5%8C%BA%E9%97%B4%E4%B8%BA%20%5Bpivot%20%2B%201,%20right%5D%0A%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20quick_sort%28nums,%20pivot%20%2B%201,%20right%29%20%20%23%20%E9%80%92%E5%BD%92%E6%8E%92%E5%BA%8F%E5%8F%B3%E5%AD%90%E6%95%B0%E7%BB%84%0A%20%20%20%20%20%20%20%20%20%20%20%20right%20%3D%20pivot%20-%201%20%20%23%20%E5%89%A9%E4%BD%99%E6%9C%AA%E6%8E%92%E5%BA%8F%E5%8C%BA%E9%97%B4%E4%B8%BA%20%5Bleft,%20pivot%20-%201%5D%0A%0A%22%22%22Driver%20Code%22%22%22%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20%23%20%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%EF%BC%88%E5%B0%BE%E9%80%92%E5%BD%92%E4%BC%98%E5%8C%96%EF%BC%89%0A%20%20%20%20nums%20%3D%20%5B2,%204,%201,%200,%203,%205%5D%0A%20%20%20%20quick_sort%28nums,%200,%20len%28nums%29%20-%201%29%0A%20%20%20%20print%28%22%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%EF%BC%88%E5%B0%BE%E9%80%92%E5%BD%92%E4%BC%98%E5%8C%96%EF%BC%89%E5%AE%8C%E6%88%90%E5%90%8E%20nums%20%3D%22,%20nums%29&cumulative=false&curInstr=5&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=311&rawInputLstJSON=%5B%5D&textReferences=false
diff --git a/docs-en/index.assets/conceptual_rendering.png b/docs-en/index.assets/conceptual_rendering.png
deleted file mode 100644
index 4f9a14acb4398ea6496ca4d4e7d41ce65762ffd3..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 83827
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