$count = 1000;for($i=0;$i<$count;$i++)
# 空白對照
$start = microtime(1);
echo 'do nothing takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
# 原生方法排序
$test_array = $random_array;
$start = microtime(1);
sort($test_array);
echo 'origin sort takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
# 氣泡排序
# 兩兩交換,思路很簡單
$test_array = $random_array;
$start = microtime(1);
# 需要把計算個數的時間也考慮到
$count = count($test_array);
# 迴圈n-1次
for($i=1;$i<$count;$i++)
}}echo 'bubble sort takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
# 選擇排序
# 依次選擇最小(大)的元素,等選擇完畢自動有序
$test_array = $random_array;
$start = microtime(1);
$count = count($test_array);
for($i=0;$i<$count-1;$i++)
}}echo 'select sort takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
# 插入排序
# 就像別人給你發撲克牌,拿到一張牌就插到你手上,並使之有序
$test_array = $random_array;
$start = microtime(1);
$count = count($test_array);
# 直接跳過$i=0
for($i=1;$i<$count;$i++)else
}}echo 'insertion sort takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
# 快速排序
# 有點遞迴的思想,隨機乙個基準,將集合分為兩半,然後繼續分解,直到元素個數為1或0個
$test_array = $random_array;
$start = microtime(1);
function quick_sort($arr)else
}$l = quick_sort($left);
$r = quick_sort($right);
return array_merge($l, (array)$base, $r);
}quick_sort($test_array);
echo 'quick sort takes:' . number_format((microtime(1) - $start), 6);
echo "\n";
只有上學的時候沒學
最近做乙個東西,對一件事體會特別深。程式設計和編寫,實際上就是把問題弄明白的過程。這個過程就是學習。其實世界上大多數事情都當如此,那些不包含這一過程的工作可以說都是毫無價值的 這一點通過對社會的觀察也可以看到。和朋友說這些話,朋友說,沒錯,幹什麼都是學習,只有原來上學的時候沒學。深以為然。我說,即便...
inline block並列排序時候的影響
當兩個設定了inline block屬性的元素並列排放時,它們的位置能夠互相影響。元素結構 13 我們使三個div都設定為 inline block,設定寬度使其居於一行內。如果再把 container demo2 中的內容注釋掉,我們可以看到一種十分詭異的情況,如圖。可以發現本該位於父容器頂端的d...
聯合索引建立時候的排序規則
比如mysql 單列索引是將該列資料當做關鍵字構建一顆b tree,但是組合索引是如何實現的呢?比如兩個欄位的組合索引,select from table1 where a 22 and b 33 是要建兩棵樹嗎?如果只建立一顆樹,那b列是如何存放的?一棵樹 如果是單列,就按這列資料進行排序 如果是...