<?phpclass
test
if ($start + 1 >= $end
) else
}$mid = $start + intval(($end - $start)/ 2);
if ($arr[$mid] === $x
) elseif ($arr[$mid] > $x
) elseif ($arr[$mid
< $x
]) }
/*** 氣泡排序
* 思路:
* * 如原始有x個值需要排序
* * 控制最大的值一直往右移動,第一次迴圈必然造成最大的值會在最右側
* * 重複以上過程,冒泡 x-1, x-2, x-3...之間的值
* @param $arr array 需排序的陣列
* @return array 排序結果
*/public
function bubblesort($arr
) }
}return
$arr
; }
/*** 氣泡排序2
* 實現思路2,遞迴
* @param $arr array 需排序的陣列
* $param $lastindexer int|null 需檢測的最大索引
* @return array 排序結果
*/public
function bubblesort2($arr, $lastindexer = null
)
if ($lastindexer === 0)
for($i = 0; $i
< $lastindexer; $i++)
}return
$this->bubblesort2($arr, $lastindexer - 1);
}/**
* 快速排序
* @param $arr
*/public
function quicksort($arr
) else
}//分別對更小的以及更大的數進行快速排序
$min = $this->quicksort($min
);
$max = $this->quicksort($max
);
return
array_merge($min, [$mid], $max
); }
else
}}$test = new
test();
//二分查詢
$arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
$x = 10;
$index = $test->binarysearch($x, $arr
);var_dump($index
);//
氣泡排序
$arr2 = [2, 3, 1, 6, 9, 8, 0, 5, 4, 7];
$bubbleresult = $test->bubblesort($arr2
);print_r($bubbleresult
);$bubbleresult2 = $test->bubblesort2($arr2
);print_r($bubbleresult2
);//
快速排序
$quicksort = $test->quicksort($arr2
);print_r($quicksort);
氣泡排序,快速排序,選擇排序,二分查詢
氣泡排序原理 每一趟只能將乙個數歸位,如果有n個數進行排序,只需將n 1個數歸位,也就是說要進行n 1趟操作 已經歸位的數不用再比較 每一次都是得到比較列表中最大的數。氣泡排序演算法及其優化 氣泡排序的基本特徵是只能交換相鄰的元素。從下邊界開始,一趟掃瞄下來,可以把當前最大值頂到上邊界 如果沒有發生...
php 氣泡排序 快速排序 二分查詢
氣泡排序 class getnum return arr 快速排序 一般以第乙個元素為準 大於這個元素放左邊 小於這個元素放右邊 class quicknum b arr 0 for i 1 igetquicknum arr left arr right this getquicknum arr r...
氣泡排序 二分查詢
include include include using namespace std int bsearch int t,int n,int x 二分查詢 return null inline void swap int a,int b void init int t,int n for int ...