Heim  >  Artikel  >  Backend-Entwicklung  >  php中的冒泡排序,取舍排序,插入排序

php中的冒泡排序,取舍排序,插入排序

WBOY
WBOYOriginal
2016-06-13 13:04:30756Durchsuche

php中的冒泡排序,选择排序,插入排序


??//冒泡排序
??function bubbleSort(&$arr){
????
????$temp=0;
????
????//加入第i个数最大
????for($i=0;$i??????
??????for($j=0;$j??????
????????//说明前面的数比后面的数大,就要交换
????????if($arr[$j] > $arr[$j+1]){
??????????$temp=$arr[$j];
??????????$arr[$j]=$arr[$j+1];
??????????$arr[$j+1]=$temp;
????????}
??????}
??????
????
????}
??}
??
??//选择排序
??function selectSort(&$arr){
????
????$temp=0;
????
????for($i=0;$i?????
??????//假设$i就是最小的数
??????$minValue=$arr[$i];
??????//记录我认为最小数的下标
??????$minIndex=$i;
??????
??????for($j=$i+1;$j????????
????????//我们认为的最小值,不是最小
????????if($minValue>$arr[$j]){
??????????
??????????$minValue=$arr[$j];
??????????$minIndex=$j;
??????????
????????}
??????}
??????
??????//最后交换
??????$temp=$arr[$i];
??????$arr[$i]=$arr[$minIndex];
??????$arr[$minIndex]=$temp;
????}
??}
??
??//插入排序法
??function insertSort(&$arr){
????
????for($i=1;$i??????
??????//$insertVal是准备插入的数
??????$insertValue=$arr[$i];
??????//准备先和$insertIndex比较
??????$insertIndex=$i-1;
??????
??????//如果这个条件满足,说明,我们还没有找到适当的位置
??????while($insertIndex>=0 && $insertValue ??????
????????//同时把数后移
????????$arr[$insertIndex+1]=$arr[$insertIndex];
????????
????????$insertIndex--;
??????}
??????
??????//插入(这时给$insertValue找到适合位置)
??????$arr[$insertIndex+1]=$insertValue;
????}
??}

??$arr = Array(0,-1,5);
??
??//冒泡排序法
??//bubbleSort($arr);
??//选择排序法
??//selectSort($arr);
??//插入排序法
??insertSort($arr);
??print_r($arr);
??
??//速度
??//插入排序法 >> 选择排序法 >> 冒泡排序法
??
?>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn