[toc] ## 概念 算法的特性:`输入`、`输出`、`有穷性`、`确定性`、`可行性` 算法设计的特性:`正确性`、`可读性`、`健壮性`、`时间效率高`、`存储量低` ## [冒泡排序](./算法、冒泡排序.md) ## 快速排序 选择一个基准元素,通常选择第一个元素或者最后一个元素。通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素。此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分 ~~~ function quickSort(array $arr):array { $len = count($arr); if ($len < 2) { return $arr; } $base = $arr[0]; $left = $right = []; //跳过基准数 for ($i = 1; $i < $len; $i++) { if ($base < $arr[$i]) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; } } $left = quickSort($left); $right = quickSort($right); return array_merge($left, [$base], $right); } $arr=[1,6,5,7,8,9,3,2,4]; $result = quickSort($arr); ~~~ ## [插入排序](./算法/insertSort.md)