
算法
艾萨克·小二爵
这个作者很懒,什么都没留下…
展开
-
选择排序(php版)
选择排序 这里使用的语言是PHP,但是语言都是相通的,用别的语言也可以实现,可以参考这里自行实现别的语言版本 /** * 选择排序 */ function selectSort($arr) { $arr_len = count($arr); if ($arr_len <= 0) { return []; } for ($i=0; $i < $arr_len; $i++) { $index = $i;原创 2021-06-18 15:24:00 · 157 阅读 · 1 评论 -
快速排序(三种写法:第三种 - 三路快速排序)
快速排序三(三路快速排序) 这里使用的语言是PHP,但是语言都是相通的,用别的语言也可以实现,可以参考这里自行实现别的语言版本 /** * 快速排序 3 三路快速排序 * <v, =v, >v * 重复元素很多的情况 */ /** * 3、对arr[l...r]部分进行partition操作 * 返回P,使得arr[l...p-1] < arr[p]; arr[p+1...r] > arr[p] */ function _partition(&$arr,原创 2021-06-18 15:14:38 · 125 阅读 · 0 评论 -
快速排序(三种写法:第二种 - 双链路快速排序)
快速排序二(双链路快速排序) 这里使用的语言是PHP,但是语言都是相通的,用别的语言也可以实现,可以参考这里自行实现别的语言版本 /** * 快速排序2 双路快速排序 */ /** * 3、对arr[l...r]部分进行partition操作 * 返回P,使得arr[l...p-1] < arr[p]; arr[p+1...r] > arr[p] */ function _partition(&$arr, $l, $r) { //随机一个数 $rand_i原创 2021-06-18 15:12:14 · 111 阅读 · 0 评论 -
快速排序(三种写法:第一种 - 单链路快排)
快速排序一 这里使用的语言是PHP,但是语言都是相通的,用别的语言也可以实现,可以参考这里自行实现别的语言版本 /** * 快速排序 1 */ /** * 3、对arr[l...r]部分进行partition操作 * 返回P,使得arr[l...p-1] < arr[p]; arr[p+1...r] > arr[p] */ function _partition(&$arr, $l, $r) { //随机一个数 $rand_index = rand()原创 2021-06-18 15:06:59 · 135 阅读 · 0 评论 -
归并排序(两种写法)
归并排序 这里使用的语言是PHP,但是语言都是相通的,用别的语言也可以实现,可以参考这里自行实现别的语言版本 /** * 归并排序 */ function mergeSort(&$arr) { $arr_len = count($arr); if ($arr_len <= 0) { return []; } merge_sort($arr, 0, $arr_len - 1); } //递归调用对arr[l...r]的范围进行排序 func原创 2021-06-18 15:00:45 · 192 阅读 · 0 评论 -
插入排序(两种极简写法)
PHP插入排序 这里使用的语言是PHP,但是语言都是相通的,用别的语言也可以实现,可以参考这里自行实现别的语言版本 /** * 插入排序 * 时间复杂度O(N^2) * 调用的时候可自行选择注释其中一个方法 * 两个方法都可用 */ function insertSort($arr) { //判断数组长度 $arr_len = count($arr); if ($arr_len <= 0) { return []; } for ($i原创 2021-06-17 14:25:18 · 185 阅读 · 0 评论 -
计算两数的汉明距离
计算两个整数的汉明距离 - PHP版 <?php /** * @param Integer $x * @param Integer $y * @return Integer */ function hammingDistance(int $x, int $y) { //计算整个整数的二进制值 $x_hash = decbin($x); $y_hash = decbin($y); //使两个整数转换出来的二进制统一长度 - 左边填充 0 $原创 2021-06-04 15:38:14 · 284 阅读 · 2 评论