十三 順序排序和二分法排序

2022-02-07 04:38:06 字數 750 閱讀 3896

1

<?php2 //

順序查詢

3$a=array(1,6,3,2,2,5,3);

4function search($a,$findval

) 12}

13if (!$flag

) 16

}17 search($a,300);

18//

二分查詢法 前提是必須是有序陣列

19//思路:

20//1.用中間數與findval對比

21//2.如果要查詢的數比中間數小,則在左邊查詢

22//3.反之,在右邊查詢

23//4.不大於或小於左邊,則剛好是中間數

24function binarysearch($arr,$findval,$leftindex,$rightindex)29

$middleindex=round(($leftindex+$rightindex)/2);

30if ($findval

]) else

if ($findval>$arr[$middleindex

]) else37}

38$arr1=array(6,44,66,69,77,99);

39//

$arr=array(1,23,53,412);

40 binarysearch($arr1,99,0,count($arr1)-1);

41 ?>

結果:

氣泡排序法和二分法排序

使用氣泡排序法對陣列進行排序的原理 陣列元素兩兩比較大小 function func arr print r arr arr array 0,11,2,3,24,5,16,7,48,9 func arr 使用快速排序法對陣列進行排序的原理 陣列元素進行樹狀分支,分結點比較大小,然後採用遞迴函式遞迴處...

二分法和氣泡排序

先放乙個 可以看到冒泡,選擇,插入排序的過程 冒泡 選擇 插入排序 前言 二分法是乙個優化演算法,在乙個基於有序列表中,列表從1到10000,如果要找乙個8899的數字,不用二分法的話,就是迴圈從一到10000,直到找到8899.但是,有沒有想過,前5000個都比8899小,所以能不能直接第一次就判...

二分法排序C

首先說一下二分法排序的原理,演算法思想簡單描述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,如果小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的所有元素後移,再把第i個元素放在目標位置上。二分法排序...