ኮምፒውተሮች, ፕሮግራም
ፕሮግራም ውስጥ ቴክኒኮች መደርደር: "አረፋ" መደርደር
የአረፋ ዓይነት ብቻ ከዚህም በላይ ማደራጀት ወደ ዘገምተኛ መንገዶች ዝርዝር ያልራራለት ማንም ቢሆን: ፈጣን ዘዴ እንዲሆን ተደርጎ ነው. ሆኖም ግን, የራሱ ጥቅሞች አሉት. በመሆኑም የአረፋ ከመደርደር ዘዴ - አንድ የተወሰነ ትዕዛዝ ውስጥ ያለውን ንጥሎች ማመቻቸት ከፈለጉ የሚያሳድግ በጣም ችግር ተፈጥሯዊ እና ምክንያታዊ መፍትሔ ነው. አንድ ተራ ሰው በእጅ, ለምሳሌ, እነሱን መጠቀም ይሆናል - ልክ የስሜት በማድረግ.
የት እንዲህ ያልተለመደ ስም ነበር?
ዘዴ ስም ውሃው ውስጥ የአየር አረፋዎች መካከል ያለውን ንጽጽር በመጠቀም, እስከ መጣ. ይህ ዘይቤ ነው. ልክ እንደ ትንሽ አየር በአረፋ ዠምሮ ይነሣል - ያላቸውን ጥግግት (በዚህ ጉዳይ ላይ - ውኃ) አንድ ፈሳሽ ይበልጣል ምክንያቱም እያንዳንዱ የድርድር አባል, ለትናንሾቹ ይህም ዋጋ, ዝርዝር ቁጥሮች አናት ወደ ይበልጥ ቀስ በቀስ መንገድ ነው.
የ ስልተ መግለጫ
እንደሚከተለው የአረፋ ዓይነት አፈጻጸም ነው:
- የመጀመሪያው ማለፊያ: አደራደር ቁጥሮች ንጥረ ሁለት ጥንድ የተነሱ ሲሆን ደግሞ ሲነፃፀር ነው. ሁለት-ሰው ቡድን የመጀመሪያ እሴት አንዳንድ ክፍሎች ከሁለተኛው የሚበልጥ ከሆነ, ፕሮግራሙ ከእነርሱ ልውውጥ ቦታዎች ያደርጋል;
- በዚህም ምክንያት, ታላቅ ቁጥር ዒላማውን በድርድሩ መጨረሻ. ሁሉንም ሌሎች ንጥረ እነሱ ነበሩ እንደ የማይካሄድ ሁኔታ, ይቀራል, እና መደርደር ተጨማሪ የሚጠይቁ ቢሆንም;
- ስለዚህ ወደ ሁለተኛው ማለፊያ ይጠይቃሉ: ከእርሱ ጋር ንጽጽር በማድረግ ነው ወደ ቀዳሚው (ቀደም ሲል እንደተገለጸው) እና ንጽጽሮችን ብዛት አለው - ሲቀነስ አንድ;
- ምንባብ ቁጥር ሶስት ንጽጽሮች, በመጀመሪያው ይልቅ አንድ ሁለተኛው ያነሰ ሲሆን በሁለቱ ላይ. እና የመሳሰሉት;
- እያንዳንዱ ምንባብ እንዳለው (በድርድሩ ውስጥ ሁሉንም ዋጋዎች, የተወሰነ ቁጥር) ሲቀነስ (ምንባብ ቁጥር) ንጽጽሮችን ጠቅለል.
አንድ ፕሮግራም እንኳ አጭር ስልተ ሆኖ የተጻፈ መሆን ይችላሉ:
- ማንኛውም ሁለት ቁጥሮች ተገኝተዋል እንደ የቁጥሮች ድርድር ከእነርሱ ሁለተኛው የመጀመሪያው የበለጠ መሆን የማይቀር ነው, ለረጅም ጊዜ እንደ ምልክት:
- ትክክል ባልሆነ የድርድር ሶፍትዌር swaps እያንዳንዱ ሌሎች ንጥረ ነገሮች ጋር በተያያዘ ተደርጓል.
Pseudocode የተገለጸው ስልተ ቀመር ላይ የተመሠረተ
እንደሚከተለው ቀላሉ ትግበራ ተሸክመው ነው:
Sortirovka_Puzirkom አሰራር;
መጀመሪያ
konechii_index ወደ nachalnii_index ከ j ለ ዑደት;
nachalnii_index ከ ቀ ለ ዑደት konechii_index-1;
ከሆነ massiv [i]> massiv [i + 1] (ሁለተኛ የሚበልጥ የመጀመሪያው ንጥረ): ከዚያም:
(ለውጥ እሴቶች ቦታዎች);
መጨረሻ
እርግጥ ነው, ይህ ቀለል ብቻ ሁኔታ aggravates: ስልተ ቀመሩ ቀላል, ይበልጥ ይህ ሁሉ ስህተት እንዳለበት ገልጿል. ጊዜ ኢንቨስትመንት ውድር (ሀ ፕሮግራመር ሁሉ ሁለተኛ ወይም ሚሊ ቆጠራዎች የታቦቱ ጊዜ መጠን ትንሽ ሊመስል ይችላል, ነገር ግን እንዲያውም relativity የሚመጣው እዚህ) እንኳን አንድ ትንሽ ድርድር በጣም ትልቅ ነው.
ይህ የተሻለ አፈፃፀም ወሰደ. ለምሳሌ, መለያዎ ወደ ድርድር አካባቢዎች ውስጥ የእሴቶች ልውውጥ ይዞ:
Sortirovka_Puzirkom አሰራር;
መጀመሪያ
sortirovka = እውነተኛ;
ዑደት sortirovka እውነተኛ = ድረስ;
sortirovka = የሐሰት;
nachalnii_index ከ ቀ ለ ዑደት konechii_index-1;
ከሆነ massiv [i]> massiv [i + 1] (ሁለተኛ የሚበልጥ የመጀመሪያው ንጥረ): ከዚያም:
(አባሎች ቦታዎች መለወጥ);
sortirovka = እውነተኛ; (የ ልውውጥ ተደርጓል መሆኑን ለይቶ).
ጨርስ.
ገደቦች
ዋናው ለኪሳራ - የ ሂደት ቆይታ. ምን ያህል ጊዜ የፈጸማቸው ነው ስልተ መደርደር አረፋ?
በእርሳስ ጊዜ በድርድሩ ውስጥ ካሬ ቁጥሮች ቁጥር ከ ይሰላል ነው - መጨረሻ ውጤት ተመጣጣኝ ነው.
በድርድሩ ብዙ ጊዜ እንደ ይተላለፋል የከፋ ሁኔታ ከሆነ አንድ እሴት ሲቀነስ ክፍሎችን ያለው ሆኖ. መጨረሻ ላይ ለማወዳደር ምንም ይህም ብቻ አንድ ባሕርይ አለ; ምክንያቱም ይህ በሚሆንበት, እና ድርድር በኩል የመጨረሻው ማለፊያ ከንቱ እርምጃ ይሆናል.
በተጨማሪም, ይህ ብቻ አነስተኛ መጠን ድርድሮች ለ, ተብሎ እንደ አንድ ቀላል ልውውጥ ከመደርደር ውጤታማ ዘዴ. ሂደት እርዳታ ጋር ውሂብ ከፍተኛ መጠን አይሰራም; ውጤቱ ስህተት ወይም ፕሮግራም ውድቀት ወይ ይሆናል.
ክብር
የአረፋ ዓይነት ለመረዳት በጣም ቀላል ነው. በውስጡ ድርድር ሰርዓት ክፍሎች ጥናት ውስጥ የቴክኒክ ዩኒቨርሲቲዎች መካከል ሥርዓተ በመጀመሪያው ቦታ ላይ አያልፍም. ዘዴ ዴልፊ የፕሮግራም ቋንቋ (L (ዴልፊ), እና ሐ / ሲ ++ (ሐ / C ሲደመር ሲደመር), ትክክለኛ ቅደም ተከተል እና በ የአካባቢ ስልተ አንድ በማይታመን ሁኔታ ቀላል እሴቶች ሁለቱንም ለመተግበር ቀላል ነው ፓስካል (ፓስካል). ዓረፋ ዓይነት ለጀማሪዎች ተስማሚ ነው.
ምክንያት ስልተ ያለውን እንቅፋቶች ጋር ከመደበኛ ትምህርት ዓላማዎች ጥቅም ላይ አይደለም.
ምስላዊ ድርደራ መርህ
ወደ ድርድር 8 22 4 74 44 37 1 7 የመጀመሪያ እይታ
ደረጃ 1 8 22 4 74 44 37 1 7
8 22 4 74 44 1 37 7
8 22 4 74 1 44 37 7
8 22 4 1 74 44 37 7
8 22 1 4 74 44 37 7
8 1 22 4 74 44 37 7
1 8 22 4 74 44 37 7
ደረጃ 2 1 8 22 4 74 44 7 37
1 8 22 4 74 7 44 37
1 8 22 4 7 74 44 37
1 8 22 4 7 74 44 37
1 8 4 22 7 74 44 37
1 4 8 22 7 74 44 37
ደረጃ 3 1 4 8 22 7 74 37 44
1 4 8 22 7 37 74 44
1 4 8 22 7 37 74 44
1 4 8 7 22 37 74 44
1 4 7 8 22 37 74 44
ደረጃ 4 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 8 22 37 44 74
ደረጃ 5 1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
ደረጃ 6 1 4 7 8 22 37 44 74
1 4 7 8 22 37 44 74
ደረጃ 7 1 4 7 8 22 37 44 74
ፓስካል ውስጥ የአረፋ ዓይነት ምሳሌ
ለምሳሌ:
const kol_mas = 10;
var massiv: ድርድር [1..kol_mas] መካከል ኢንቲጀር;
ሀ, ለ, K: ኢንቲጀር;
ጀመረ
writeln ( 'ግብዓት' kol_mas, 'ድርድር ንጥረ');
አንድ ለ: kol_mas ወደ = 1 readln ማድረግ (massiv [ሀ ]);
አንድ ለ: = 1 kol_mas-1 ይጀምራሉ ማድረግ
ለ ለ: kol_mas የ + 1 ለመጀመር ምን =
massiv [ሀ]> massiv [ከሆነ b] ከዚያ ይጀምራሉ
K: = massiv [ሀ]; massiv [ሀ]: = massiv [ ለ]; massiv [ለ]: = k;
ያበቃል;
ያበቃል;
ያበቃል;
writeln ( 'ዓይነት በኋላ');
አንድ ለ: kol_mas ወደ = 1 writeln ማድረግ (massiv [ሀ ]);
መጨረሻ.
ሐ ቋንቋ ድርደራ ምሳሌ ፊኛውን (ሐ)
ለምሳሌ:
#include
#include
int ዋና (int argc, ቁምፊ * argv [])
{
int massiv [8] = {36, 697, 73, 82, 68, 12, 183, 88}, i, FF;
{(;;) ለ
FF = 0;
ለ (i = 7; i> 0; ቀ -) {
ከሆነ (massiv [i]
ስዋፕ (massiv [i], massiv [i- 1]);
FF ++;
}
}
(FF == 0) መላቀቅ ከሆነ;
}
getch (); // ማሳያ መዘግየት
0 መመለስ;
}.
Similar articles
Trending Now