算法
文章平均质量分 92
小资不采
我是一个小熊啊
展开
-
字符串或数字反转
字符串或数字反转字符串反转,比如给定一个字符串 abc,得到一个cba,或者输入一个123456得到一个654321,如果不想要自己实现,那么PHP有一个自带的函数strrev ( string $string ) : string strrev 也是可以达到相同的效果的在 力扣 算法篇是由这个题目描述的,具体的可以点链接过去看看,不过这个题目在里算法里面是属于简单的在这里如果想要自己实现一个达到相同效果的函数,也是可以做到的。方法一:使用二分法,我们把第一个字符和最后一个字原创 2020-07-29 23:29:27 · 1128 阅读 · 0 评论 -
插值查找算法
插值查找算法对于有序的数列[数组]来说,查找一个具体的数值[数组的value],可以使用顺序查找,也可以使用前一章节学习的折半[二分法]查找。下面有一个具体的实例:$arr = [1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]这是一个分布均匀的有序数组,这次需要查找数组的值为1的键,或者是一个值为20的键。首先使用顺序查找:顺序查...原创 2019-12-13 18:04:34 · 265 阅读 · 0 评论 -
查找算法之二分法
查找算法之二分法二分法查找的前提是待找的数组是一个有序的数组(这里假设数组是一个从小到大的数组)递归的查找需要找到的值思路:首先是一个有序的数组,找到这个数组的中间值,然后需要找到的值和这个中间值比较,如果是比中间值小,就向右递归,否则向左递归数组 $arr = [2, 36, 25, 1, -1, 45, 99];待找到的值 -1<?php/** *...原创 2019-12-12 14:30:59 · 203 阅读 · 0 评论 -
希尔排序之交换排序
希尔排序之交换排序问题引入:在插入排序中,如果数组元素的排列情况比较乐观,那么插入的次数就比较少,那么效率就很高了,可是很多时候,数据就是那么的不敬人意,比如如下的一个待排序的数组:[2,3,4,5,6,7,1],这个数组,如果使用插入排序,那么就会发生如下的样子:第一轮:[2,3,4,5,6,7,7]第二轮:[2,3,4,5,6,6,7]第三轮:[2,3,4,5,5,...原创 2019-11-05 23:06:18 · 968 阅读 · 1 评论 -
排序算法 sort algorithm之冒泡排序
排序算法 sort algorithm排序算法的介绍分类排序是将一组数据,依次指定的顺序进行排列的过程分类内部排序 将数据一次性加载到内存中进行排序1.1 插入排序1.1.1 直接插入排序1.1.2 希尔排序1.2 选择排序1.2.1 简单选择排序1.2.2 堆排序1.3 交换排序1.3.1 冒泡排序1.3.2 快速排序1.4 归并排序1.5 基数...原创 2019-10-28 23:58:47 · 329 阅读 · 0 评论 -
排序算法之选择排序
选择排序 select sorting选择排序也是内部排序排序思想:第一次先随便选择一个数,就是在要排序的数组中选择一个元素和数组的其它元素比较。然后比较交换位置得到最小值或者最大值,然后再次在剩下的数组中,选择一个数和数组剩下的元素比较,最后得到第二个最小或最大的元素。一次类推示意图:选择排序一共有数组大小 - 1 轮排序;每一轮排序又是一个循环;先假定当前的这个数...原创 2019-10-31 10:03:01 · 175 阅读 · 0 评论 -
排序算法之插入排序 Insert Sort
插入排序 Insert Sort插入排序的思想:将一个待排序的无序的数组看作是两个列表,一个有序的列表,一个无序的列表,从无序的列表每次拿出一个待插入的元素,插入到有序的列表中,直到无序列表为空,排序完毕实际举例:有一个无序的一维数组是这次需要排序的数组,数组是:[36,12,96,-1]首先把数组的第一个元素 [36] 看作是一个独立的有序的列表,把剩下的元素 [...原创 2019-11-02 00:04:18 · 252 阅读 · 0 评论