កុំព្យូទ័រការសរសេរកម្មវិធី

តម្រៀបបច្ចេកទេសក្នុងការសរសេរកម្មវិធី: តម្រៀប "ពពុះ"

ប្រភេទពពុះមិនត្រូវបានចាត់ទុកតែមួយគត់ដើម្បីជាវិធីសាស្រ្តលឿនបំផុតលើសពីនេះទៅទៀតវាបិទបញ្ជីនៃវិធីយឺតបំផុតដើម្បីរៀបចំ។ ទោះជាយ៉ាងណា, វាមានគុណសម្បត្តិរបស់ខ្លួន។ ដូច្នេះវិធីសាស្រ្តនៃការតម្រៀបពពុះ - ច្រើនបំផុតដែលមិនថាជាដំណោះស្រាយធម្មជាតិនិងឡូជីខលទៅនឹងបញ្ហានេះ, ប្រសិនបើអ្នកចង់បានដើម្បីរៀបចំឱ្យមានធាតុនៅក្នុងលំដាប់ជាក់លាក់មួយ។ ជាមនុស្សសាមញ្ញដោយដៃ, ឧទាហរណ៍វានឹងប្រើពួកវា - គ្រាន់តែដោយវិចារណញាណ។

ដែលជាកន្លែងដែលបានធ្វើបែបនេះឈ្មោះមិនធម្មតាមួយ?

ឈ្មោះវិធីសាស្រ្តមកឡើងដោយប្រើភាពស្រដៀងនៃការពពុះខ្យល់នៅក្នុងទឹក។ វាជាពាក្យប្រៀបធៀបមួយ។ គ្រាន់តែដូចជាពពុះខ្យល់តិចតួចកើនឡើងឡើង - ដោយសារតែដង់ស៊ីតេរបស់ខ្លួនគឺច្រើនជាងសារធាតុរាវមួយ (ក្នុងករណីនេះ - ទឹក) និងធាតុអារេគ្នា, មានទំហំតូចដែលវាគឺជាតម្លៃជាវិធីបន្តិចម្តងបន្ថែមទៀតដើម្បីកំពូលនៃចំនួនបញ្ជី។

ការរៀបរាប់នៃក្បួនដោះស្រាយ

ប្រភេទពពុះគឺត្រូវបានអនុវត្តដូចខាងក្រោម:

  • ដំណាក់កាលដំបូង: ធាតុនៃលេខអារេត្រូវបានយកដោយគូពីរនាក់និងបានប្រៀបធៀបផងដែរ។ ប្រសិនបើធាតុមួយចំនួននៃក្រុមទាំងពីរបុរសម្នាក់ជាលើកដំបូងគឺមានតម្លៃធំជាងទីពីរដែលកម្មវិធីនេះធ្វើឱ្យពួកគេផ្លាស់ប្តូរទីកន្លែង!
  • លទ្ធផល, ចំនួនធំបំផុតនៃការ បាត់ចុងបញ្ចប់នៃអារេនេះ។ ខណៈពេលដែលធាតុផ្សេងទៀតទាំងអស់នៅតែដូចដែលពួកគេត្រូវបានគេ, នៅក្នុងលក្ខណៈវឹកវរមួយ, និងទាមទារឱ្យមានការតម្រៀបច្រើនទៀត!
  • ហេតុដូច្នេះហើយតម្រូវឱ្យមានការបញ្ជូនជាលើកទីពីរ: វាត្រូវបានធ្វើឡើងដោយស្រដៀងគ្នាជាមួយនឹងមុន (បានរៀបរាប់រួចទៅហើយ) និងមានចំនួននៃការប្រៀបធៀប - ដកមួយ;
  • នៅលេខអនុម័តប្រៀបធៀបបីគឺមួយតិចជាងលើកទីពីរនិងពីរនាក់ជាជាងជាលើកដំបូង។ និងដូច្នេះនៅលើ;
  • សង្ខេបថាការអនុម័តគ្នាមាន (តម្លៃទាំងអស់នៅក្នុងអារេលេខពិសេស) ដក (ចំនួនអនុម័ត) ការប្រៀបធៀប។

ក្បួនដោះស្រាយសូម្បីតែខ្លីនៃកម្មវិធីមួយដែលអាចត្រូវបានសរសេរជា:

  • អារេនៃចំនួនមួយដែលត្រូវបានគូសធីកដែលវែងដូចដែលលេខពីរត្រូវបានរកឃើញជាលើកទីពីររបស់ពួកគេត្រូវបានចងទៅជាធំជាងដំបូង;
  • ដាក់ទីតាំងមិនត្រឹមត្រូវនៅក្នុងការទាក់ទងនឹងធាតុផ្សេងទៀតនៃគ្នាដោះដូរផ្នែកទន់អារេបាន។

Pseudocode លើក្បួនដោះស្រាយមានមូលដ្ឋានរៀបរាប់

ការអនុវត្តន៍សាមញ្ញបំផុតគឺត្រូវអនុវត្តដូចខាងក្រោម:

នីតិវិធី Sortirovka_Puzirkom;

ការចាប់ផ្តើម

វដ្តសម្រាប់ j ពី nachalnii_index ទៅ konechii_index;

វដ្តសម្រាប់ខ្ញុំពី nachalnii_index ទៅ konechii_index-1;

ប្រសិនបើការធំ [i]> ធំ [i + 1] (ធាតុដំបូងធំជាងលើកទីពីរមួយ), បន្ទាប់មក:

(ការផ្លាស់ប្តូរដាក់តម្លៃ);

ចុងបញ្ចប់

ជាការពិតណាស់ភាពសាមញ្ញនេះ aggravates តែស្ថានភាពនេះ: ការងាយស្រួលក្បួនដោះស្រាយច្រើនវាបង្ហាញរាងគុណវិបត្តិទាំងអស់។ សមាមាត្រនៃការពេលវេលាគឺជាការវិនិយោគផងដែរសូម្បីតែខ្លាំងមានអារេតូចមួយ (នៅទីនេះបានមកនៅក្នុងការពាក់ព័ន្ធ: ចំនួនទឹកប្រាក់នៃការពេលវេលាសម្រាប់ layman នេះអាចហាក់ដូចជាតូច, ប៉ុន្តែនៅក្នុងការពិតអ្នកសរសេរកម្មវិធីគ្រប់វិនាទីឬមួយសូម្បីតែចំនួនមិល្លីវិនាទី) ។

វាបាននាំការអនុវត្តន៍ល្អប្រសើរជាងមុន។ ឧទាហរណ៍យកទៅក្នុងគណនីការផ្លាស់ប្តូរនៃតម្លៃក្នុងទីតាំងអារេ:

នីតិវិធី Sortirovka_Puzirkom;

ការចាប់ផ្តើម

sortirovka = ពិត;

វដ្តនៃការរហូតដល់ sortirovka = ពិត;

sortirovka = មិនពិត!

វដ្តសម្រាប់ខ្ញុំពី nachalnii_index ទៅ konechii_index-1;

ប្រសិនបើការធំ [i]> ធំ [i + 1] (ធាតុដំបូងធំជាងលើកទីពីរមួយ), បន្ទាប់មក:

(ផ្លាស់ប្តូរកន្លែងធាតុ);

sortirovka = ពិត; (កំណត់អត្តសញ្ញាណថាការផ្លាស់ប្តូរនេះត្រូវបានធ្វើឡើង) ។

បញ្ចប់។

ដែនកំណត់

ការគុណវិបត្តិចម្បង - រយៈពេលនៃដំណើរការនេះ។ របៀបដែលពេលវេលាជាច្រើនត្រូវបានសម្តែង ការតម្រៀបក្បួនដោះស្រាយ ពពុះ?

អ្នកដឹកនាំការពេលវេលាដែលត្រូវបានគណនាពីចំនួននៃលេខការ៉េក្នុងអារេ - លទ្ធផលចុងបញ្ចប់របស់វាគឺសមាមាត្រ។

ប្រសិនបើមានករណីធ្ងន់ធ្ងរអារេត្រូវបានអនុម័តជាច្រើនដងតាមដែលវាមានធាតុដកតម្លៃមួយ។ រឿងនេះកើតឡើងដោយសារតែនៅទីបញ្ចប់គឺមានធាតុតែមួយគត់ដែលមិនមានអ្វីដើម្បីប្រៀបធៀបនិងដំណាក់កាលចុងក្រោយនេះតាមរយៈការអារេបានក្លាយទៅជាសកម្មភាពគ្មានប្រយោជន៍។

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

សេចក្តីថ្លៃថ្នូរ

ប្រភេទពពុះគឺជាការងាយស្រួលក្នុងការយល់ខ្លាំងណាស់។ សាកលវិទ្យាល័យបច្ចេកទេសកម្មវិធីសិក្សានៅក្នុងការសិក្សានៃធាតុនៃអារេលំដាប់របស់ខ្លួនដែលបានអនុម័តនៅកន្លែងដំបូង។ វិធីសាស្រ្តនេះគឺជាការងាយស្រួលក្នុងការអនុវត្តទាំងពីរភាសាបាន Delphi សរសេរកម្មវិធី (ឆ្វេង (Delphi) និង C / C ++ (C / C បូកបូក) ដែលជាតម្លៃសាមញ្ញមិនគួរឱ្យជឿនៃក្បួនដោះស្រាយទីតាំងនៅក្នុងលំដាប់ខាងស្ដាំនិងនៅ លោក Pascal (Pascal) ។ ប្រភេទពពុះគឺល្អសម្រាប់អ្នកចាប់ផ្តើមដំបូង។

ដោយសារតែគុណវិបត្តិនៃក្បួនដោះស្រាយមិនត្រូវបានប្រើក្នុងគោលបំណងក្រៅ។

គោលការណ៍តម្រៀបដែលមើលឃើញ

ទិដ្ឋភាពដំបូងនៃអារេ 8 22 74 44 37 4 1 7

ជំហានទី 1 8 22 74 44 37 4 1 7

8 74 44 22 4 1 37 7

8 22 4 1 44 37 74 7

8 4 1 74 22 44 37 7

8 1 4 74 22 44 37 7

8 1 22 4 74 44 37 7

1 8 22 4 74 44 37 7

ជំហានទី 2 1 8 22 74 44 7 4 37

1 8 22 4 44 37 74 7

1 8 22 4 7 74 44 37

1 8 22 4 7 74 44 37

1 8 4 22 74 44 37 7

ទី 1 4 8 22 74 44 37 7

ជំហានទី 3 1 4 8 7 74 37 22 44

ទី 1 4 8 22 37 74 44 7

ទី 1 4 8 22 37 74 44 7

ទី 1 4 8 7 74 44 22 37

1 4 7 8 22 37 74 44

ជំហានទី 1 4 7 4 22 37 44 8 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

ជំហានទី 1 4 7 5 22 37 44 8 74

1 4 7 8 22 37 44 74

1 4 7 8 22 37 44 74

ជំហានទី 1 4 7 6 8 22 37 44 74

1 4 7 8 22 37 44 74

ជំហានទី 1 4 7 7 8 22 37 44 74

ពពុះប្រភេទឧទាហរណ៍នៅក្នុងលោក Pascal

ឧទាហរណ៍:

kol_mas const = 10;

ធំ var: អារេ [1..kol_mas] នៃ ចំនួនគត់;

a, b, K: ចំនួនគត់;

ចាប់ផ្តើម

writeln ( 'ការបញ្ចូល', kol_mas, "ធាតុនៃអារេ ');

សម្រាប់: = 1 ទៅ kol_mas ធ្វើ readln (ធំ [មួយ ]);

សម្រាប់: = 1 ទៅ kol_mas-1 បានធ្វើការចាប់ផ្តើម

សម្រាប់ខ: = a + 1 ដើម្បី kol_mas អ្វីបានជាការចាប់ផ្តើម

ប្រសិនបើទ្រង់ទ្រាយធំ [មួយ]> ធំ [ ខ] បន្ទាប់មកចាប់ផ្តើម

k: = ធំ [មួយ]; ធំ [មួយ]: = ធំ [ ខ] ធំ [ខ]: = k;

បញ្ចប់;

បញ្ចប់;

បញ្ចប់;

writeln ( 'បែប');

សម្រាប់: = 1 ទៅ kol_mas ធ្វើ writeln (ធំ [មួយ ]);

ចុងបញ្ចប់។

ពពុះគំរូរបស់តម្រៀបនៅក្នុងភាសា C (គ)

ឧទាហរណ៍:

#include

#include

int មេ (argc int, char * argv [])

{

int ធំ [8] = {36, 697, 73, 82, 68, 12, 183, 88}, ខ្ញុំ, ff;

សម្រាប់ (;;) {

ff = 0;

សម្រាប់ការ (i = 7; i> 0; i -) {

ប្រសិនបើការ (ធំ [i] <ធំ [i- 1]) {

ស្វប (ធំ [i], ធំ [i- 1]);

ff ++;

}

}

ប្រសិនបើការ (ff == 0) បំបែក;

}

getch (); // ពន្យាពេលបង្ហាញ

ត្រឡប់ 0;

} ។

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 km.birmiss.com. Theme powered by WordPress.