php陣列幾種常見的排序方式
1.氣泡排序
2.選擇排序
3.插入排序
4.快速排序
$arr = array(28,6,19,5,43,21,10,66);//排序陣列
/*** 氣泡排序
* 思路分析:在需要排序的一組數中,
* 對當前未排序的數從前往後即相鄰的數兩兩比較,
* 讓較大的數往下沉 較小的數往上冒
* 即 當相鄰的兩個數進行比較後發現它們排序與要求相反就調整其兩個的位置
*///1.氣泡排序
function bubble_sort($arr)else}}
return $arr;
}//2.氣泡排序
function bubble_sort2($arr)}}
return $arr;
}/**
* 選擇排序
* 在需要排序的一組數中選出最小的乙個數與第乙個數交換
* 接下來在找出最小的乙個數與第二個數進行交換
* 如此返回直到倒數第二個和最後乙個數進行比較
*/function select_sort($arr)
}//迴圈乙個週期後把最小值調換到$i的位置
if ($p != $i)
}return $arr;
}/**
* 插入排序
* 在排序的一組數中假設前邊的數是已經排好序的
* 現在要把n插入到前邊有序數中去
* 使得這個n也是排好序的
* 如此反覆直到排序完成
*/function insert_sort($arr)else}}
return $arr;
}/**
* 快速排序
* 選擇乙個基準元素 通常為第乙個或最後乙個
* 經過一次掃瞄將為排序的數分為兩部分
* 一部分比基準數小 另一部分比基準數大
* 這時基準數就在排序後的正確位置
* 遞迴兩面所有的數 最後得到排序資料
*/function quick_sort($arr)
$base_num = $arr[0]; //先定義乙個基準數
//初始化兩個基準兩側陣列
$left_array = array();
$right_array = array();
//遍歷陣列 大於基準的放在右邊 否則放左邊
for ($i=1; $i < $len; $i++) else
}//同樣的方式處理左右兩側陣列 遞迴呼叫
$left_array = quick_sort($left_array);
$right_array = quick_sort($right_array);
//合併陣列 並返回
return array_merge($left_array,array($base_num),$right_array);
}
php 幾種排序方式
1.氣泡排序 function m sort arr l count arr if l 0 return false for i 0 i l 1 i for j i 1 j l 1 j if arr i arr j temp arr i arr i arr j arr j temp return a...
陣列排序常見的幾種演算法
氣泡排序的基本思想就是對比相鄰的元素值,如果滿足條件就交換元素值,把小的放前面,把大的放後面。其演算法由兩層迴圈實現,外層迴圈控制排序次數,一般為排序的陣列的長度減1,內層迴圈主要用於比較相鄰元素的大小,以判斷是否交換位置。內層的對比次數隨著外層排序的次數的增加而減少。如下 public class...
幾種常見的陣列排序方法
廢話不多說,如下,基本的解釋也有 using system using system.collections.generic using system.linq using system.text namespace suanfa sort ints print ints int ints2 sor...