算法整理
小菜鸡的蜕变之路
长路漫漫,若能坚持,未来可期,加油~
展开
-
冒泡排序及其优化
我偶然看了一篇写的比较好冒泡排序优化的博客,自己整理了一下,分享给大家,一起学习。若有错误,欢迎大家指正~参考:https://blog.csdn.net/hansionz/article/details/80822494#commentBox冒泡排序(BubbleSort)一般冒泡排序写法#include<iostream>using namespace std;voi...转载 2019-06-22 19:26:09 · 363 阅读 · 0 评论 -
算法概念与五大特性
算法的概念算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务。一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。算法是独立存在的一种解决问题的方法和思想。对于算法而言,实现的语言并不重要,重要的是思想。算法可以有不同的语言描述实现版本(如C描述、C++描述、Python描述...转载 2019-06-27 22:41:58 · 3158 阅读 · 0 评论 -
排序刷题笔记
干货来啦:有向无环图才能进行拓扑排序。 在待排序的元素序列基本有序的前提下,效率最高的排序方法是?(比较最坏情况下的时间复杂度) "list采用链式结构存储,在C++ STL中的list采用双向链表存储,比较适合用快速排序进行排序,这是由快速排序不需要随机访问元素的特点决定的。冒泡排序适合list,但是算法复杂度为O(n^2),没有快速排序快。 二分插入排序算法适合顺序存储情况,不...原创 2019-07-28 20:46:06 · 613 阅读 · 0 评论 -
二分查找
二分查找,最基本的算法之一,也是面试中常被考察的重点,因为基本的算法最能反映出一个人的基础是否扎实。本文对二分查找相关题目做一个总结。(本人第一次面试就被问到了,自面试以来第二个要求手撕的算法,当时没写出来,看到这篇文章,觉得很详细,转载一下)1. 给定一个有序(非降序)数组A,求任意一个i使得A[i]等于target,不存在则返回-1这个是最原始的二分查找题目,利用数组的有序特...转载 2019-09-13 15:11:01 · 430 阅读 · 0 评论 -
算法学习(一) 寻找最小的k个数
题目题目描述:寻找最小的k个元素题目:输入n个整数,输出其中最小的k个例如输入1,2,3,4,5,6,7,8,则最小的4个数是1,2,3,4思路一、最容易想到的就是排序,然后输出前k个元素,快速排序,排序时间是n*logn,再加上遍历输出前k个元素,总的时间复杂度是n*logn+k = O(n*logn)二,其实题目中只要求输出前k个数,没有要求这些数是有顺序的,而且不必...转载 2019-09-29 21:07:42 · 1236 阅读 · 0 评论 -
海量数据排序
海量数据排序1、外排序 传统的排序算法一般指内排序算法,针对的是数据可以一次全部载入内存中的情况。但是面对海量数据,即数据不可能一次全部载入内存,需要用到外排序的方法。外排序采用分块的方法(分而治之),首先将数据分块,对块内数据按选择一种高效的内排序策略进行排序。然后采用归并排序的思想对于所有的块进行排序,得到所有数据的一个有序序列。 例如,考虑一个1G文件,可用内存100...转载 2019-09-29 21:10:35 · 485 阅读 · 0 评论 -
由前序和中序重建二叉树
笔试中二叉树遍历的题考的频率还是很高的,这里整理一下遍历的题~初始结构定义如下:struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};① 由前序序列和中序序列重建二...原创 2019-10-03 11:49:23 · 232 阅读 · 0 评论