From 45f79cdd6de40306f82c01e055909c52f8ecf38a Mon Sep 17 00:00:00 2001 From: majun_ics Date: Thu, 27 Aug 2020 15:48:48 +0800 Subject: [PATCH 1/2] + lecturenotes of 2019-2 given by junma --- .../2-10_ElementaryDataStructure.pdf | Bin 0 -> 33032 bytes .../2-10_ElementaryDataStructure.tex | 53 + .../figs/ICS_LOGO_left.png | Bin 0 -> 13952 bytes .../mj_preamble_lecturenote.tex | 22 + .../2-11_Heap&HeapSort.pdf | Bin 0 -> 5555010 bytes .../2019-2-11_Heap&HeapSort.pdf | Bin 0 -> 5555003 bytes .../2019-2-11_Heap&HeapSort.tex | 765 ++++++++++++ .../figs/BUILD-MAX-HEAP_example.PNG | Bin 0 -> 223534 bytes .../figs/BUILD-MAX-HEAP_procedure.PNG | Bin 0 -> 22578 bytes .../figs/Book_Algorithms.jpg | Bin 0 -> 18701 bytes .../figs/Dijkstra_Animation-0.png | Bin 0 -> 2353 bytes .../figs/Dijkstra_Animation-1.png | Bin 0 -> 2452 bytes .../figs/Dijkstra_Animation-10.png | Bin 0 -> 2523 bytes .../figs/Dijkstra_Animation-11.png | Bin 0 -> 2550 bytes .../figs/Dijkstra_Animation-12.png | Bin 0 -> 2459 bytes .../figs/Dijkstra_Animation-13.png | Bin 0 -> 2567 bytes .../figs/Dijkstra_Animation-14.png | Bin 0 -> 2633 bytes .../figs/Dijkstra_Animation-15.png | Bin 0 -> 2607 bytes .../figs/Dijkstra_Animation-16.png | Bin 0 -> 2633 bytes .../figs/Dijkstra_Animation-17.png | Bin 0 -> 2781 bytes .../figs/Dijkstra_Animation-18.png | Bin 0 -> 2567 bytes .../figs/Dijkstra_Animation-19.png | Bin 0 -> 2727 bytes .../figs/Dijkstra_Animation-2.png | Bin 0 -> 2420 bytes .../figs/Dijkstra_Animation-20.png | Bin 0 -> 2704 bytes .../figs/Dijkstra_Animation-21.png | Bin 0 -> 2727 bytes .../figs/Dijkstra_Animation-22.png | Bin 0 -> 2595 bytes .../figs/Dijkstra_Animation-23.png | Bin 0 -> 2611 bytes .../figs/Dijkstra_Animation-24.png | Bin 0 -> 2634 bytes .../figs/Dijkstra_Animation-25.png | Bin 0 -> 2642 bytes .../figs/Dijkstra_Animation-26.png | Bin 0 -> 2620 bytes .../figs/Dijkstra_Animation-27.png | Bin 0 -> 2642 bytes .../figs/Dijkstra_Animation-28.png | Bin 0 -> 2804 bytes .../figs/Dijkstra_Animation-29.png | Bin 0 -> 2661 bytes .../figs/Dijkstra_Animation-3.png | Bin 0 -> 2452 bytes .../figs/Dijkstra_Animation-30.png | Bin 0 -> 2694 bytes .../figs/Dijkstra_Animation-31.png | Bin 0 -> 2666 bytes .../figs/Dijkstra_Animation-32.png | Bin 0 -> 2694 bytes .../figs/Dijkstra_Animation-33.png | Bin 0 -> 2848 bytes .../figs/Dijkstra_Animation-34.png | Bin 0 -> 2638 bytes .../figs/Dijkstra_Animation-35.png | Bin 0 -> 2679 bytes .../figs/Dijkstra_Animation-36.png | Bin 0 -> 2688 bytes .../figs/Dijkstra_Animation-37.png | Bin 0 -> 2734 bytes .../figs/Dijkstra_Animation-38.png | Bin 0 -> 2706 bytes .../figs/Dijkstra_Animation-39.png | Bin 0 -> 2734 bytes .../figs/Dijkstra_Animation-4.png | Bin 0 -> 2349 bytes .../figs/Dijkstra_Animation-40.png | Bin 0 -> 2734 bytes .../figs/Dijkstra_Animation-41.png | Bin 0 -> 2722 bytes .../figs/Dijkstra_Animation-42.png | Bin 0 -> 3025 bytes .../figs/Dijkstra_Animation-5.png | Bin 0 -> 2458 bytes .../figs/Dijkstra_Animation-6.png | Bin 0 -> 2430 bytes .../figs/Dijkstra_Animation-7.png | Bin 0 -> 2458 bytes .../figs/Dijkstra_Animation-8.png | Bin 0 -> 2414 bytes .../figs/Dijkstra_Animation-9.png | Bin 0 -> 2550 bytes .../figs/Dijkstra_Animation.gif | Bin 0 -> 9051 bytes .../figs/Donald-Knuth.jpg | Bin 0 -> 231578 bytes .../figs/ICS_LOGO_left.png | Bin 0 -> 13952 bytes .../figs/MAX-HEAPIFY(a).PNG | Bin 0 -> 32573 bytes .../figs/MAX-HEAPIFY(b).PNG | Bin 0 -> 32797 bytes .../figs/MAX-HEAPIFY(c).PNG | Bin 0 -> 32702 bytes .../figs/MAX-HEAPIFY.PNG | Bin 0 -> 81196 bytes .../figs/PrimAlgDemo-0.png | Bin 0 -> 2435 bytes .../figs/PrimAlgDemo-1.png | Bin 0 -> 2435 bytes .../figs/PrimAlgDemo-10.png | Bin 0 -> 3129 bytes .../figs/PrimAlgDemo-11.png | Bin 0 -> 3026 bytes .../figs/PrimAlgDemo-12.png | Bin 0 -> 3258 bytes .../figs/PrimAlgDemo-13.png | Bin 0 -> 3149 bytes .../figs/PrimAlgDemo-14.png | Bin 0 -> 3453 bytes .../figs/PrimAlgDemo-15.png | Bin 0 -> 3234 bytes .../figs/PrimAlgDemo-16.png | Bin 0 -> 3572 bytes .../figs/PrimAlgDemo-17.png | Bin 0 -> 3415 bytes .../figs/PrimAlgDemo-18.png | Bin 0 -> 3710 bytes .../figs/PrimAlgDemo-19.png | Bin 0 -> 3570 bytes .../figs/PrimAlgDemo-2.png | Bin 0 -> 2654 bytes .../figs/PrimAlgDemo-20.png | Bin 0 -> 3680 bytes .../figs/PrimAlgDemo-21.png | Bin 0 -> 3617 bytes .../figs/PrimAlgDemo-22.png | Bin 0 -> 3812 bytes .../figs/PrimAlgDemo-23.png | Bin 0 -> 3693 bytes .../figs/PrimAlgDemo-24.png | Bin 0 -> 3921 bytes .../figs/PrimAlgDemo-25.png | Bin 0 -> 3785 bytes .../figs/PrimAlgDemo-26.png | Bin 0 -> 4295 bytes .../figs/PrimAlgDemo-27.png | Bin 0 -> 4025 bytes .../figs/PrimAlgDemo-28.png | Bin 0 -> 4317 bytes .../figs/PrimAlgDemo-29.png | Bin 0 -> 4129 bytes .../figs/PrimAlgDemo-3.png | Bin 0 -> 2544 bytes .../figs/PrimAlgDemo-30.png | Bin 0 -> 4520 bytes .../figs/PrimAlgDemo-31.png | Bin 0 -> 4290 bytes .../figs/PrimAlgDemo-32.png | Bin 0 -> 4674 bytes .../figs/PrimAlgDemo-33.png | Bin 0 -> 4429 bytes .../figs/PrimAlgDemo-34.png | Bin 0 -> 4950 bytes .../figs/PrimAlgDemo-35.png | Bin 0 -> 4623 bytes .../figs/PrimAlgDemo-36.png | Bin 0 -> 5188 bytes .../figs/PrimAlgDemo-37.png | Bin 0 -> 4900 bytes .../figs/PrimAlgDemo-38.png | Bin 0 -> 5026 bytes .../figs/PrimAlgDemo-39.png | Bin 0 -> 4942 bytes .../figs/PrimAlgDemo-4.png | Bin 0 -> 2650 bytes .../figs/PrimAlgDemo-40.png | Bin 0 -> 5284 bytes .../figs/PrimAlgDemo-41.png | Bin 0 -> 5028 bytes .../figs/PrimAlgDemo-42.png | Bin 0 -> 5434 bytes .../figs/PrimAlgDemo-43.png | Bin 0 -> 5242 bytes .../figs/PrimAlgDemo-44.png | Bin 0 -> 5489 bytes .../figs/PrimAlgDemo-45.png | Bin 0 -> 5330 bytes .../figs/PrimAlgDemo-46.png | Bin 0 -> 5450 bytes .../figs/PrimAlgDemo-47.png | Bin 0 -> 5374 bytes .../figs/PrimAlgDemo-48.png | Bin 0 -> 5688 bytes .../figs/PrimAlgDemo-49.png | Bin 0 -> 5527 bytes .../figs/PrimAlgDemo-5.png | Bin 0 -> 2881 bytes .../figs/PrimAlgDemo-50.png | Bin 0 -> 5875 bytes .../figs/PrimAlgDemo-51.png | Bin 0 -> 5671 bytes .../figs/PrimAlgDemo-52.png | Bin 0 -> 6219 bytes .../figs/PrimAlgDemo-53.png | Bin 0 -> 5959 bytes .../figs/PrimAlgDemo-54.png | Bin 0 -> 6220 bytes .../figs/PrimAlgDemo-55.png | Bin 0 -> 6023 bytes .../figs/PrimAlgDemo-56.png | Bin 0 -> 6205 bytes .../figs/PrimAlgDemo-57.png | Bin 0 -> 6083 bytes .../figs/PrimAlgDemo-6.png | Bin 0 -> 2834 bytes .../figs/PrimAlgDemo-7.png | Bin 0 -> 2652 bytes .../figs/PrimAlgDemo-8.png | Bin 0 -> 2970 bytes .../figs/PrimAlgDemo-9.png | Bin 0 -> 2842 bytes .../figs/PrimAlgDemo.gif | Bin 0 -> 254321 bytes .../2019-2-11-Heap&HeapSort/figs/TAOCP_V3.png | Bin 0 -> 437790 bytes .../2019-2-11-Heap&HeapSort/figs/dijkstra.jpg | Bin 0 -> 14237 bytes .../figs/heap_array.PNG | Bin 0 -> 16284 bytes .../figs/heap_array_parent_procedure.PNG | Bin 0 -> 16070 bytes .../figs/heap_tree.PNG | Bin 0 -> 32672 bytes .../figs/heapsort_example.PNG | Bin 0 -> 201464 bytes .../figs/heapsort_procedure.PNG | Bin 0 -> 88858 bytes .../figs/insert_example.PNG | Bin 0 -> 228050 bytes .../figs/operations_on_heap.PNG | Bin 0 -> 94430 bytes .../figs/pq_HEAP-EXTRACT-MAX.PNG | Bin 0 -> 94584 bytes .../figs/pq_HEAP-INCREASE-KEY.PNG | Bin 0 -> 100908 bytes .../figs/pq_MAX-HEAP-INSERT.PNG | Bin 0 -> 67328 bytes .../figs/pq_heap_maximum.PNG | Bin 0 -> 17299 bytes .../figs/priority-queue-pattern.png | Bin 0 -> 10130 bytes .../figs/priority-queue-separate.png | Bin 0 -> 18428 bytes .../figs/priority_queue_operations.PNG | Bin 0 -> 214069 bytes .../figs/proof_correctness_build_max_heap.PNG | Bin 0 -> 128492 bytes .../figs/real_heap.png | Bin 0 -> 2202749 bytes .../figs/tightbound_build_max_heap.PNG | Bin 0 -> 12339 bytes .../2019-2-12_Hashing/2019-2-12_Hashing.pdf | Bin 0 -> 1336691 bytes .../2019-2-12_Hashing/2019-2-12_Hashing.tex | 944 +++++++++++++++ .../2019-2-12_Hashing/figs/ICS_LOGO_left.png | Bin 0 -> 13952 bytes 2019/2019-2/2019-2-12_Hashing/figs/cloud.png | Bin 0 -> 89092 bytes .../2019-2-12_Hashing/figs/corollary-11-7.PNG | Bin 0 -> 93198 bytes .../2019-2-12_Hashing/figs/cr_chaining.PNG | Bin 0 -> 116692 bytes .../figs/cr_chaining_procedure.PNG | Bin 0 -> 98876 bytes .../figs/cr_open_addressing.PNG | Bin 0 -> 25761 bytes ...cted_probes_suc_search_open_addressing.PNG | Bin 0 -> 77876 bytes .../2019-2-12_Hashing/figs/functiongraph.png | Bin 0 -> 38412 bytes .../2019-2-12_Hashing/figs/functiongraph1.png | Bin 0 -> 53359 bytes 2019/2019-2/2019-2-12_Hashing/figs/java7.png | Bin 0 -> 109167 bytes .../figs/multiplication_hashing_function.PNG | Bin 0 -> 24458 bytes .../2019-2-12_Hashing/figs/theorem-11-1.PNG | Bin 0 -> 30713 bytes .../2019-2-12_Hashing/figs/theorem-11-2.PNG | Bin 0 -> 30097 bytes .../2019-2-12_Hashing/figs/theorem-11-6.PNG | Bin 0 -> 97878 bytes .../2019-2-12_Hashing/figs/theorem-11-8.PNG | Bin 0 -> 142585 bytes .../2019-2/2019-2-12_Hashing/hashing_idea.PNG | Bin 0 -> 153046 bytes .../2-9-sorting_and_selection(handout).pdf | Bin 0 -> 2237268 bytes .../2019-9-sorting_and_selection.pdf | Bin 0 -> 2250022 bytes .../2019-9-sorting_and_selection.tex | 1026 +++++++++++++++++ .../figs/ICS_LOGO_left.png | Bin 0 -> 13952 bytes .../figs/Pr_zi_zj.PNG | Bin 0 -> 24165 bytes .../figs/bucket_sort_Xij.png | Bin 0 -> 50661 bytes .../figs/bucket_sort_example.png | Bin 0 -> 81981 bytes .../figs/bucket_sort_procedure.png | Bin 0 -> 167183 bytes ...rectness_quicksort_partition_procedure.png | Bin 0 -> 35744 bytes .../figs/counting_sort_example_a.png | Bin 0 -> 12509 bytes .../figs/counting_sort_example_ab.png | Bin 0 -> 40330 bytes .../figs/counting_sort_example_b.png | Bin 0 -> 5938 bytes .../figs/counting_sort_example_c.png | Bin 0 -> 25894 bytes .../figs/counting_sort_example_d.png | Bin 0 -> 25133 bytes .../figs/counting_sort_example_e.png | Bin 0 -> 26438 bytes .../figs/counting_sort_procedure.png | Bin 0 -> 221679 bytes .../figs/counting_sort_procedure_output.png | Bin 0 -> 38828 bytes ...decision_tree_comparison_based_sorting.png | Bin 0 -> 84723 bytes .../figs/mergesort.png | Bin 0 -> 384435 bytes .../figs/minimum_procedure.png | Bin 0 -> 27701 bytes .../figs/pq_heap_maximum.PNG | Bin 0 -> 13003 bytes .../figs/proof_lemma_8-4.png | Bin 0 -> 180580 bytes .../figs/quicksort.png | Bin 0 -> 35590 bytes .../figs/quicksort__partition_process.PNG | Bin 0 -> 52108 bytes .../figs/quicksort_binary_tree.png | Bin 0 -> 49304 bytes .../figs/quicksort_partition_procedure.png | Bin 0 -> 31359 bytes .../figs/quicksort_process.png | Bin 0 -> 15596 bytes .../figs/radix_sort_example.PNG | Bin 0 -> 84411 bytes .../figs/radix_sort_procedure.png | Bin 0 -> 46717 bytes .../figs/randomized-partition-procedure.png | Bin 0 -> 44936 bytes .../figs/randomized-quicksort.png | Bin 0 -> 70251 bytes ...mized-selection-expected-runtime-total.PNG | Bin 0 -> 59810 bytes .../figs/randomized-selection-procedure.png | Bin 0 -> 58408 bytes .../randomized-selection-runtime-total.PNG | Bin 0 -> 13523 bytes .../figs/recur_tree_quicksort.png | Bin 0 -> 171719 bytes .../2019-2-9-Sorting&Selection/figs/top10.png | Bin 0 -> 214062 bytes .../figs/top10_comments_on_quicksort.png | Bin 0 -> 120674 bytes .../top_10_algorithm.png | Bin 0 -> 214062 bytes 2019/2019-2/figs/ICS_LOGO_left.png | Bin 0 -> 13952 bytes commonres/figs/ICS_LOGO_left.png | Bin 0 -> 13952 bytes mj_preamble_lecturenote.tex | 144 +++ 197 files changed, 2954 insertions(+) create mode 100644 2019/2019-2/2019-10-Elementary _Data_Structure/2-10_ElementaryDataStructure.pdf create mode 100644 2019/2019-2/2019-10-Elementary _Data_Structure/2-10_ElementaryDataStructure.tex create mode 100644 2019/2019-2/2019-10-Elementary _Data_Structure/figs/ICS_LOGO_left.png create mode 100644 2019/2019-2/2019-10-Elementary _Data_Structure/mj_preamble_lecturenote.tex create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/2-11_Heap&HeapSort.pdf create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/2019-2-11_Heap&HeapSort.pdf create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/2019-2-11_Heap&HeapSort.tex create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/BUILD-MAX-HEAP_example.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/BUILD-MAX-HEAP_procedure.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Book_Algorithms.jpg create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-0.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-1.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-10.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-11.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-12.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-13.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-14.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-15.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-16.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-17.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-18.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-19.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-2.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-20.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-21.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-22.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-23.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-24.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-25.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-26.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-27.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-28.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-29.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-3.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-30.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-31.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-32.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-33.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-34.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-35.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-36.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-37.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-38.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-39.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-4.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-40.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-41.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-42.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-5.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-6.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-7.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-8.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation-9.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Dijkstra_Animation.gif create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/Donald-Knuth.jpg create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/ICS_LOGO_left.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/MAX-HEAPIFY(a).PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/MAX-HEAPIFY(b).PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/MAX-HEAPIFY(c).PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/MAX-HEAPIFY.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-0.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-1.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-10.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-11.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-12.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-13.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-14.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-15.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-16.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-17.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-18.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-19.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-2.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-20.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-21.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-22.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-23.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-24.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-25.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-26.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-27.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-28.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-29.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-3.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-30.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-31.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-32.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-33.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-34.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-35.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-36.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-37.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-38.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-39.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-4.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-40.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-41.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-42.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-43.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-44.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-45.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-46.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-47.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-48.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-49.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-5.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-50.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-51.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-52.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-53.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-54.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-55.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-56.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-57.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-6.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-7.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-8.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo-9.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/PrimAlgDemo.gif create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/TAOCP_V3.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/dijkstra.jpg create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/heap_array.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/heap_array_parent_procedure.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/heap_tree.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/heapsort_example.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/heapsort_procedure.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/insert_example.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/operations_on_heap.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/pq_HEAP-EXTRACT-MAX.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/pq_HEAP-INCREASE-KEY.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/pq_MAX-HEAP-INSERT.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/pq_heap_maximum.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/priority-queue-pattern.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/priority-queue-separate.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/priority_queue_operations.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/proof_correctness_build_max_heap.PNG create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/real_heap.png create mode 100644 2019/2019-2/2019-2-11-Heap&HeapSort/figs/tightbound_build_max_heap.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/2019-2-12_Hashing.pdf create mode 100644 2019/2019-2/2019-2-12_Hashing/2019-2-12_Hashing.tex create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/ICS_LOGO_left.png create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/cloud.png create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/corollary-11-7.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/cr_chaining.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/cr_chaining_procedure.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/cr_open_addressing.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/expected_probes_suc_search_open_addressing.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/functiongraph.png create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/functiongraph1.png create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/java7.png create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/multiplication_hashing_function.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/theorem-11-1.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/theorem-11-2.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/theorem-11-6.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/figs/theorem-11-8.PNG create mode 100644 2019/2019-2/2019-2-12_Hashing/hashing_idea.PNG create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/2-9-sorting_and_selection(handout).pdf create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/2019-9-sorting_and_selection.pdf create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/2019-9-sorting_and_selection.tex create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/ICS_LOGO_left.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/Pr_zi_zj.PNG create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/bucket_sort_Xij.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/bucket_sort_example.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/bucket_sort_procedure.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/correctness_quicksort_partition_procedure.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/counting_sort_example_a.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/counting_sort_example_ab.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/counting_sort_example_b.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/counting_sort_example_c.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/counting_sort_example_d.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/counting_sort_example_e.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/counting_sort_procedure.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/counting_sort_procedure_output.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/decision_tree_comparison_based_sorting.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/mergesort.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/minimum_procedure.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/pq_heap_maximum.PNG create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/proof_lemma_8-4.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/quicksort.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/quicksort__partition_process.PNG create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/quicksort_binary_tree.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/quicksort_partition_procedure.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/quicksort_process.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/radix_sort_example.PNG create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/radix_sort_procedure.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/randomized-partition-procedure.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/randomized-quicksort.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/randomized-selection-expected-runtime-total.PNG create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/randomized-selection-procedure.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/randomized-selection-runtime-total.PNG create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/recur_tree_quicksort.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/top10.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/figs/top10_comments_on_quicksort.png create mode 100644 2019/2019-2/2019-2-9-Sorting&Selection/top_10_algorithm.png create mode 100644 2019/2019-2/figs/ICS_LOGO_left.png create mode 100644 commonres/figs/ICS_LOGO_left.png create mode 100644 mj_preamble_lecturenote.tex diff --git a/2019/2019-2/2019-10-Elementary _Data_Structure/2-10_ElementaryDataStructure.pdf b/2019/2019-2/2019-10-Elementary _Data_Structure/2-10_ElementaryDataStructure.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6ed0ff937432e7b0bff0257b67d7ed8ee4976013 GIT binary patch literal 33032 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 ZCeE&&&gNi5E>0d^E<_p{No6U-{{qUu*@gfB literal 0 HcmV?d00001 diff --git a/2019/2019-2/2019-10-Elementary _Data_Structure/2-10_ElementaryDataStructure.tex b/2019/2019-2/2019-10-Elementary _Data_Structure/2-10_ElementaryDataStructure.tex new file mode 100644 index 0000000..af24cd8 --- /dev/null +++ b/2019/2019-2/2019-10-Elementary _Data_Structure/2-10_ElementaryDataStructure.tex @@ -0,0 +1,53 @@ +\documentclass[UTF8,11pt,handout]{beamer} + +\input{mj_preamble_lecturenote} +\mode +\begin{document} + \author{MA Jun} + \title{Problem Solving} + \subtitle{2-10 Elementary Data Structure} + \logo{\includegraphics[width=0.05\textwidth]{figs/ICS_LOGO_left.png}} + \institute{Institute of Computer Software} + %\date{March 31, 2020} + %\subject{} + %\setbeamercovered{transparent} + %\setbeamertemplate{navigation symbols}{} +\begin{frame}[plain] + \maketitle +\end{frame} +\begin{frame} %生成目录页,目录太长时加选项[shrink] + \addtocounter{framenumber}{-2}%---------位置放在beginframe之后,不然无效 + \frametitle{Contents} + \thispagestyle{empty} + \tableofcontents[hideallsubsections] +\end{frame} +\AtBeginSection[]{ + \begin{frame} %生成目录页,目录太长时加选项[shrink] + \addtocounter{framenumber}{-1}%---------位置放在beginframe之后,不然无效 + \frametitle{Contents} + \thispagestyle{empty} + \tableofcontents[currentsection] + \end{frame} +} + +\begin{frame} + \begin{block}{ + \begin{center} + {\huge + Thank You! + + \textcolor[rgb]{1,0,0} {Questions?} + } + \end{center} + } + \end{block} + \begin{block}{} + \begin{center} + + Office 819 + + majun@nju.edu.cn + \end{center} + \end{block} + \end{frame} +\end{document} \ No newline at end of file diff --git a/2019/2019-2/2019-10-Elementary _Data_Structure/figs/ICS_LOGO_left.png b/2019/2019-2/2019-10-Elementary _Data_Structure/figs/ICS_LOGO_left.png new file mode 100644 index 0000000000000000000000000000000000000000..c918a3da58d2f167310ed7bd38939d78ee6b0395 GIT binary patch literal 13952 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 UxvF&FCr=oPvTEQ;X|qrN4{8CkA^-pY literal 0 HcmV?d00001 diff --git a/2019/2019-2/2019-10-Elementary _Data_Structure/mj_preamble_lecturenote.tex b/2019/2019-2/2019-10-Elementary _Data_Structure/mj_preamble_lecturenote.tex new file mode 100644 index 0000000..3d40131 --- /dev/null +++ b/2019/2019-2/2019-10-Elementary _Data_Structure/mj_preamble_lecturenote.tex @@ -0,0 +1,22 @@ +\usepackage[utf8]{inputenc} +\usepackage{latexsym} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[english]{babel} +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{graphicx} +\usepackage{tikz} +\usetikzlibrary{matrix,shapes,arrows,positioning,fit,backgrounds,calc} +\usepackage{overpic} +\usepackage[]{algorithm} +\usepackage[]{algpseudocode} % noend +\usepackage[most]{tcolorbox} +\usepackage{ulem} +\usepackage{fancybox} +\usetikzlibrary{decorations.pathreplacing} +\usetheme{Eastlansing} +\newcommand{\fallingfactorial}[1]{% + ^{\underline{#1}}% +} \ No newline at end of file diff --git a/2019/2019-2/2019-2-11-Heap&HeapSort/2-11_Heap&HeapSort.pdf b/2019/2019-2/2019-2-11-Heap&HeapSort/2-11_Heap&HeapSort.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0ac8165d5fb80531273febe7aa62a4a38a4fe0e6 GIT binary patch literal 5555010 zcmd411$0(jk~JK6Ax_-g-QC^Y-QC^Yi4u1u?w$}Ak`Q+zE<}mT|M2$wGxT&%zuo-} zYt344;gR#)Q@5)2-c_ea6-2~n8R=MINOv#J?qS#n7zpf*tYCO}=v6!&OzAb`jjT+K zUFelvja+`d7PEJ<{p0fUQvybMAt8GYZ3e(1MutEB>e9;^x;R;SXfp!d1HAL|s!OkA z>TK`oWNhjT!wz^uiC)ao#>Lc$Ud+bO#Z<)9*xtmHUdGhU+{J=`iJ6ZN#@WTm)X)~j zV?~)k!9krtK|*~RaZ-U|5(wx$2xu~lsh!Dxd;{>mpPS_b{OIr8G~-WG{?~WS`19fX z)@?KWmTfct?rpRDmTj~CmTikW*}FObl0}(b#mUgl*}>4s)XvzGURar4#MI5w*i_uf z(36kvmjqz^nPLAZmY6yJZU#`OC@_FA!S~7dw&;L@r}=~m5U2!H00DIxLf!stMlk-& zv;Y0r`q!=H_K{tPGn3EvX`YHcvo{oh*4^m}mQU$^$p z;N_pN*7#Rzlc65|j0Rs)PL6iTjmzaMKaQv5-nEwnB{w*&t{~iSRm+_AI z&w%2e@zQ_7`%f=vKvVu5FZ~|m_{B?q1_}S3mwpcf{Oex&Go<)uyoB=qBi>Ihc|lYE z9WVVJ==d)$vHTe({99gP`P~q}@>?K)<@Z3qFHif=a{J$V+P^!MS$<0@v-}@PWtRVq zRA&A)m9wB}|2CCbeord@%gDw0XBq#`AeZy6=2k(|{jIsIzXt;Tb#wm=DgGIA|5KX& z1nO>R`oClD?}3hg-P}Jzn19Ax>0iA&1Q$jjgg&!?N>#)uCr>l#`ezl zT>YY40~D?QX|D>S(Gni@aKR7uYRj(E4ycCSx>WG3Ti8l+bcTd_KKUbCv-(a%RzD{f zj-nRTZjQs}t#B0T2!j|W!x1yc)Wr*T))l8Er=^V~2rQQJP?jLB^2l1E)Vnkj>4n^z z`nl%l62>g1Dd+N6W}iVCdqEeV{V$ zgvV=_`w^r40kbV~y9&t+%aTCkjlN8<^~m`$IddPHQ#LmnqPSG>!7>bt)i(?Rj8eL3 z{yU|hFY&wN2*a(CmxeRT^Qd==2k{$8=ToDVxj_1g