愿你坚持不懈,努力进步,进阶成自己理想的人

—— 2017.09, 写给3年后的自己

搜索分类算法下的文章

快速排序算法

#include <iostream> #include <cstdlib> #include <ctime> using namespace std; void swap(int& a, int &b) { int temp = a; a = b; b = temp; } ...

数组去重

方法一:需要先排序 PHP实现: function removeDuplicates(&$arr) { sort($arr); $j = 0; $n = count($arr); if($n <= 0) return; for($i=1; $i<$n; ++$...

数组去除指定元素

使用两个游标i和j,游标i表示当前指向的元素,游标j表示指定元素所在的下标。 当前元素等于指定元素,i++ 当前元素不等于指定元素,前面已经找到了一个坑a[j],把当前元素放入坑a[j],然后j++ 如:3 7 2 2 1 2 3,去除2,则 i=0, j=0:3!=2,i++, j++ ...

AVL树学习总结

AVL树是一种特殊的二叉搜索树,由两位俄国数学家G.M.Adelson-Velskii和E.M.Landis所发明,所以取名AVL树。AVL树本质上是一种平衡的二叉搜索树 一、基本概念 1、AVL树需要满足: 每一个节点的左子树和右子树高度差至多为1 满足二...

散列表(Hash表)总结

Hash表是一种十分高效的、可用于查找的数据结构,它既是一种存储方法,也是一种查找方法。一个设计良好的Hash表,可以实现在平均O(1)的实际内查找数据。但是Hash表主要适用于=和!=的情况,对于范围比较、排序的情况下,并不适用 一、Hash表的主要概念 散列函...

二分查找与插值查找

二分查找,又叫做折半查找。是针对有序表进行查找的一种算法,要使用二分查找,需要满足: 1、表是一个有序表(数据要是有序的) 2、表采用的顺序存储 算法实现 二分查找每次都是取一个范围内的中间值,让待查找关键字和中间值进行比较,如果较小,则缩小范围到中间值的左边范围,如果较大,则...

简单排序算法总结

一、冒泡排序 冒泡排序是最基本的排序算法,它的核心思想,是进行n-1趟比较,每趟比较都把最小的元素放到前面,像吐泡泡一样,轻的元素向上冒,所以得名冒泡排序。 过程:

#牛客编程题#优雅的点

小易有一个圆心在坐标原点的圆,小易知道圆的半径的平方。小易认为在圆上的点而且横纵坐标都是整数的点是优雅的,小易现在想寻找一个算法计算出优雅的点的个数,请你来帮帮他。 例如:半径的平方如果为25 优雅的点就有:(+/-3, +/-4), (+/-4, +/-3), (0, +/-5) (+/-5, 0),一共12个点。 输入描述: ...

#牛客编程题#回文序列

如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如: {1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。 现在给出一个数字序列,允许使用一种转换操作: 选择任意两个相邻的数,然后从序列移除这两个数,并用这两个...

#牛客编程题#回文字符串

题目描述 给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。 输入描述: 输入包括一行字符串,其长度不超过1000。 输出描述: 可能有多组测试数据,对于每组数据,如果...

链表总结

链表是一种常用的数据结构,相比数组,它的优点是可以不用固定长度,不用预先分配一段连续的内存空 间,因此它的空间利用率比较高。然而数组的优点,也是它的缺点,数组的检索操作可以在O(1)时间内 完成,而链表往往需要O(n)时间 链表的节点 实现一个链表,首先需要定义链表的节点结构体,用于保存数据和与其他节点...

STL——栈

栈是一种LIFO(后进先出)的数据结构,可以用来模拟递归、实现倒序等等 STL栈的常用操作 #include <iostream> // 使用STL栈,需要引入stack头文件 #include <stack> #include <cstd...

STL——优先队列

STL中的优先队列,队首放置的是最大值 基本操作 #include <iostream> // 使用优先队列,需要引入queue头文件 #include <queue> using namespace std; int main() { ...

二叉最小堆

二叉堆是指用二叉树来实现堆这一种数据结构 堆的基本操作 1、插入一个数值 插入一个数值,要保持堆顶是最小的,我们可以...

冒泡排序算法的优化

今天我们要来谈一种算法,是的,你没有看错,就是“冒泡排序”,这是最基本最初级的一个算法,然而,尽管冒泡排序很初级,却也有优化的空间 我们采用PHP来描述这个算法,最基本的冒泡排序,是这样子的: function bubbleSort(&$arr) { $n = count($arr); fo...