ئىلمىنىتلارنى ئايلاندۇرپ قوشنا ئىلمىنتنىڭ چوڭ كىچىكلىگە قاراپ ئالماشتۇرىدۇ . بۇنداق بولغاندا ھەر بىر ئايلانغادا ئاخىردىكى تىزىلىپ بولغان ئىلمىنىتلارغا بىرسى قېتىلىدۇ . بۇنداق بولغاندا ئايلاندۇرىدىغان ئىلمىنتلار بارغانسىرى ئازلاپ ماڭىدۇ . مەسلەن :
3 2 4 1 5
//3vs2,3vs4,4vs1,4vs5
2 3 1 4 5
//2vs3,3vs1,3vs4
2 1 3 4 5
//2vs1,2vs3
1 2 3 4 5
//1vs2
1 2 3 4 5
ئەمدى بۇنى php دە يازغان چېغىمىزدا
$start = microtime(true);
//bubble sort
function bubbleSort($numbers){
$temp = null;
for ($i=0; $i < count($numbers); $i++) {
for ($j=0; $j < count($numbers) -1 - $i; $j++) {
if($numbers[$j] > $numbers[$j+1]){
$temp = $numbers[$j];
$numbers[$j] = $numbers[$j+1];
$numbers[$j+1] = $temp;
}
}
}
return $numbers;
}
$numbers = [3,2,4,1,5];
for ($i=0; $i < 1000000; $i++) {
$sortedNumbers = bubbleSort($numbers);
}
$end = microtime(true);
print_r($sortedNumbers);
echo $end - $start;
ئۈستىدىكى كودنى يۈرگۈزگەندە ئەگەر كۆپۈكلىتىپ تەرتىپكە تۇرغۇزۇشنىڭ ئالاھدىلكىنى ئىشلەتمىسەك 1.2 سىكونىت كېتىدىكەن ، ئىشلەتكەن ۋاقىتتا 0.9 سىكونىت كېتىدىكەن . تەسپىلاتىنى دوسىتلار سىناپ باقسا بۇلىدۇ . باشقا تىلدا يېزىش ئۇسۇلىنى ئاستىدا قالدۇرۇپ قويساڭلار تېخىمۇ ياخشى