តើអ្នកអាចតម្រៀបបៀរដោយប្រើប្រាស់ Sort Algorithm បានដែរឬទេ?

boss 27-Jul-2022 1869
Blog
តើអ្នកអាចតម្រៀបបៀរដោយប្រើប្រាស់ Sort Algorithm បានដែរឬទេ?

Sorting Algorithm

Sorting Algorithm គឺជាវិធីសាស្ត្រក្នុងការរៀបចំឡើងវិញនូវ ធាតុណាមួយតាមលំដាប់លំដោយ។
ធាតុទាំងនោះអាចជា តួអក្សរ លេខ និងជាទិន្នន័យផ្សេងទៀតដែលអាចនឹងធ្វើការប្រៀបធៀបទៅរួច។
 

Types of Sorting Algorithm

  • Selection Sort
  • Bubble Sort
  • Recursive Bubble Sort
  • Insertion Sort
  • Recursive Insertion Sort
  • Merge Sort
  • Iterative Merge Sort
  • Quick Sort
  • Iterative Quick Sort
  • Heap Sort
  • Counting Sort
  • Radix Sort
  • Bucket Sort
  • ShellSort
  • TimSort
  • Comb Sort
  • Pigeonhole Sort
  • Cycle Sort
  • Cocktail Sort
  • Strand Sort
  • Bitonic Sort
  • Pancake sorting
  • Binary Insertion Sort
  • BogoSort or Permutation Sort
  • Gnome Sort
  • Sleep Sort – The King of Laziness / Sorting while Sleeping
  • Structure Sorting (By Multiple Rules) in C++
  • Stooge Sort
  • Tag Sort (To get both sorted and original)
  • Tree Sort
  • Cartesian Tree Sorting
  • Odd-Even Sort / Brick Sort
  • QuickSort on Singly Linked List
  • QuickSort on Doubly Linked List
  • 3-Way QuickSort (Dutch National Flag)
  • Merge Sort for Linked Lists
  • Merge Sort for Doubly Linked List
  • 3-way Merge Sort

Algorithm គឺមាននៅគ្រប់ទីកន្លែងក្នុងជីវិតប្រចាំថ្ងៃរបស់យើងដូចជា៖

  • Contact list ក្នុងទូរស័ព្ទរបស់អ្នកតម្រៀបតាមឈ្មោះ
  • ទំនិញនៅតាមហាងទំនើប និង Mart តម្រៀបតាមប្រភេទ និង តម្រូវការអតិថិជន
  • ការរៀបចំឯកសារតាមប្រភេទ Category នៅតាមស្ថាប័ននិងក្រុមហ៊ុន
  • ការរៀបចំសៀវភៅនៅតាមបណ្ណាល័យ
  • Facebook New Feed, Telegram or Messaging គឺភាគច្រើនបង្ហាញតាមលំដាប់នៃពេលវេលាដែលអ្នកប្រើប្រាស់ Post ឬ Send (ក្រោយគេឃើញនៅលើគេ)

Sorting Algorithm មានច្រើនប្រភេទនិងប្រើប្រាស់តាមតម្រូវការផ្សេងៗគ្នាថ្ងៃនេះយើងចង់លើកយកនូវ Sorting Algorithm មួយប្រភេទដែលងាយស្រួលយល់ និងមានការប្រើប្រាស់ទូទៅច្រើនគឺ Insertion Sort ។ 
Insertion Sort គឺជា sorting algorithm មួយប្រភេទដែលមានលក្ខណ:សាមញ្ញនិងមានការប្រើប្រាស់ទូទៅច្រើន និងវាមានប្រសិទ្ធភាពខ្លាំងទៅលើទិន្នន័យតិច។ ភាគច្រើនគឺគេប្រៀបធៀបទៅនឹង ការលេងបៀរ ដែលយើងតម្រៀបសន្លឹកបៀរតាមលំដាប់លំដោយសម្រាប់ធ្វើការសម្រេចចិត្តលេងទៅតាមវិធីសាស្ត្ររបស់អ្នកលេង។


តើអ្នកនឹងធ្វើបែបណា?

ជាទូទៅអ្នកប្រាកដជា ទាញយកសន្លឹកបៀរណាមួយដែលមានតម្លៃធំ ឬ តូចតម្រៀបទៅមុខ ឬ ក្រោយតាមទម្លាប់របស់អ្នកលេងហើយ។
ការធ្វើបែបនេះម្តងមួយសន្លឹកតម្រៀបគ្នា ចុងក្រោយអ្នកនឹងតម្រៀបបៀររបស់អ្នកបានជោគជ័យ
 

នេះគឺជា Insertion Sort

  • វាប្រៀបធៀបតម្លៃតាមលំដាប់លំដោយ នៅក្នុងបណ្តុំនៃតម្លៃនោះ
  • ទិន្នន័យនោះនឹងមិនរំកិលបើសិនជាតម្លៃនោះមិនផ្ទៀងផ្ទាត់លក្ខខណ្ឌ
  • ហើយការធ្វើបែបនេះ នឹងប្រព្រឹត្តទៅរហូតដល់អស់ទិន្នន័យក្នុងបណ្តុំនោះ

នេះគឺជាឧទាហរណ៍ Insertion Sort នៅក្នុងភាសា Java

ចំណាំ៖ ប្រសិនបើយើងចេះ Algorithm ក្នុងការដោះស្រាយបញ្ហាហើយ។ នោះយើងនឹងអាចយកវាទៅអនុវត្តន៍នៅក្នុងគ្រប់ភាសាដទៃបានដូចគ្នា វាគ្រាន់តែប្តូរនូវ syntax តាមភាសានីមួយៗប៉ុណ្ណោះ។

Time Complexity គឺជា Computational Complexity ដែលរៀបរាប់អំពីរយ:ពេលនៃ Computer Time ដើម្បីធ្វើការ run​ algorithm នោះ។
 

Case            Time Complexity
Best Case O(N)
Wort Case O(N^2)
Average Case O(N^2)
Space Complexity O(1)