កុំព្យូទ័រ, ការសរសេរកម្មវិធី
ការតម្រៀបក្បួនដោះស្រាយជាពួកគេមាន
នេះគឺជាការរៀបចំការតម្រៀបវត្ថុនៅក្នុងលំដាប់ជាក់លាក់មួយ, ឧទាហរណ៍, នៅក្នុងលំដាប់ចុះឬឡើង។ នៅក្នុងទូទៅ, លំដាប់នៃធាតុ - ការស្ទាបអង្អែលទិន្នន័យទូទៅបំផុតដើម្បីជួយសម្រួលដល់ការស្វែងរកបន្ថែមទៀតនៃពចាំបាច់។ នេះភាគច្រើនទាក់ទងទៅនឹងនានា ប្រព័ន្ធគ្រប់គ្រងមូលដ្ឋានទិន្នន័យ។ ក្បួនដោះស្រាយការតម្រៀបមាននៅក្នុងលេខធំនៅចំណុចនៅក្នុងពេលនេះទោះបីជាពួកគេមានលក្ខណៈពិសេសស្រដៀងគ្នា (ដំណាក់កាល): ការប្រៀបធៀបនិងសំនុំឆ្លាស់ធាតុក្នុងគូដរាបណាលំដាប់នេះនឹងមិនត្រូវបានបញ្ជាឱ្យ។
ក្បួនដោះស្រាយការតម្រៀបអាចត្រូវបានចាត់ថ្នាក់ចូលទៅក្នុងខាងក្នុងនិងខាងក្រៅ។ អតីតនេះត្រូវបានកំណត់លក្ខណៈដោយការពិតដែលថាធាតុទាំងអស់ដែលត្រូវបានតម្រៀបត្រូវបានដាក់ក្នុងសតិនិងអាចទទួលបានការចូលដំណើរការចៃដន្យណាមួយរបស់ពួកគេ។ ក្រោយមកទៀតអាចធ្វើការជាមួយទិន្នន័យដែលបានដាក់ក្នុង អង្គចងចាំខាងក្រៅ (ឯកសារ) ។ ការចូលដំណើរការទៅធាតុនេះអាចត្រូវបានអនុវត្តបន្តគ្នា។
ធាតុប្រភេទពេញចិត្តនៅពេលដែលពួកគេមាននៅក្នុងរចនាសម្ព័ន្ធនៃ អារេមួយវិមាត្រ។ ធាតុដូចគ្នាមានលេខសម្គាល់និងអាសយដ្ឋានដើម្បីធាតុអារេកើតឡើងនៅលើលិបិក្រម។ ក្បួនដោះស្រាយការតម្រៀបក្នុងករណីនេះគឺសាមញ្ញបំផុតនិងស្មុគស្មាញក្នុងការប្រើ។
សូមពិចារណាវិធីសាស្រ្តខាងក្បួនដោះស្រាយតម្រៀបពពុះចុះនិងកំណែប្រសើរឡើងរបស់ខ្លួន, ការប្រើប្រាស់ពេលវេលាផ្សេងគ្នាសម្រាប់ការតម្រៀប។ តម្រៀបតាមពពុះពិតជាមានឈ្មោះជាច្រើន។ វាត្រូវបានគេហៅផងដែរថាវិធីសាស្រ្តមួយលីនេអ៊ែរឬតម្រៀបផ្លាស់ប្តូរជម្រើសតម្រៀប។ ប៉ុន្តែទោះជាយ៉ាងណាវាមិនមែននៅក្នុងចំណងជើង។ ហេតុអ្វីបានជាពពុះមួយ? ពេលដែលនៅក្នុងទឹក, ពពុះខ្យល់នឹងលេចឡើងដូចដែលវាគឺជាការងាយស្រួល។ ឧទាហរណ៍ប្រសិនបើអ្នកបានតម្រៀបដោយឡើងកំពូលនឹងមានយ៉ាងហោចណាស់ធាតុ។
ពិចារណាតំណាងជាលើកដំបូងនៃការតម្រៀបដោយក្បួនដោះស្រាយពពុះអារេ។ ក្បួនដោះស្រាយពាក្យសំដី អារេតម្រៀប, មានគ្រឿងសម្គាល់ការពិតនិងមានធាតុលេខដូចខាងក្រោម:
1. ដាក់នៅលើទីតាំងនៃធាតុដំបូង (ជាការពិត [1]) ធាតុធំបំផុតនៃអារេនេះ។ ដើម្បីធ្វើដូចនេះយើងនឹងធ្វើការប្រៀបធៀបវាប្រែធាតុទាំងអស់ដែលនៅសេសសល់ (ជាការពិត [2] ជាការពិត [3] ... ជាការពិត [លេខ]) ។ ប្រសិនបើអ្នករកឃើញថាការណាមួយនៃធាតុផ្សេងទៀតគឺច្រើនជាងការពិត [1] វាត្រូវបានទាមទារឱ្យផ្លាស់ប្តូរពួកគេ (តាមរយៈ buf អថេរបន្ថែម) ។
2. ដោយបំបាត់ចេញពីធាតុពិតការពិចារណា [1] និងធ្វើឡើងវិញជាជំហានទី 1 ក្នុងការធាតុពិត [2] ។
3. ជំហានទាំងនេះត្រូវបានធ្វើម្តងទៀតសម្រាប់ធាតុទាំងអស់លើកលែងតែចុងក្រោយនេះ។
ការអនុវត្តន៍នៃក្បួនដោះស្រាយ ការតម្រៀបពពុះ សរសេរកម្មវិធីលោក Pascal:
អំពីជម្រើសទីពីរ (វិធីសាស្រ្តនៃការកម្រិតខ្ពស់ពពុះ) អ្នកអាចនិយាយបានថាក្បួនដោះស្រាយនេះ quicksort ។ ដូច្នេះប្រសិនបើអ្នកព្យាយាមប្រើវាដើម្បីតម្រៀបអារេត្រូវបានតម្រៀបរួចហើយក្បួនដោះស្រាយនេះបានបញ្ចប់ការងាររបស់ខ្លួនបន្ទាប់ពីដំណាក់កាលដំបូងនៃធាតុអារេនេះ។ នេះមានន័យថាយើងនឹងមិនធ្វើឱ្យខាតធនធានពេលកុំព្យូទ័រប្រព័ន្ធនិងធាតុប្រៀបធៀបគ្មានន័យលើ។
ខាងក្រោមនេះគឺជាការអនុវត្តនៃការតម្រៀបក្បួនដោះស្រាយសម្រាប់ភាសាសរសេរកម្មវិធីលោក Pascal នេះ:
ដូច្នេះក្បួនដោះស្រាយការតម្រៀបគឺជាមធ្យោបាយនៃការរៀបចំលំដាប់ទិន្នន័យ។ ពេលជ្រើសក្បួនដោះស្រាយជាក់លាក់មួយគួរតែយកទៅក្នុងគណនីចំណាយនៅក្នុងលក្ខខណ្ឌនៃពេលវេលានិងប្រព័ន្ធធនធាន។
Similar articles
Trending Now