![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
yuanliang861
西西弗斯式永不停歇
展开
-
【算法】排序算法
对于一般的内部排序应用程序,选用的方法不是插入排序、希尔排序,就是快速排序。他们的选择主要是根据输入的大小来决定。1、插入排序对含N个元素的数组使用插入排序,,一共由N-1次排序组成。循环历遍到位置P的时候,保证位置P之前(0-P)的元素都是已经排序的。插入排序,嵌套循环,外层循环历遍到某一个位置,确保该位置之前的元素是排序好的。内层循环,通过和相邻元素交换,实现排序。插入排序,将大于当前...原创 2018-11-05 15:21:04 · 177 阅读 · 0 评论 -
二叉树的历遍——前序、中序、后序
先介绍一下什么是前序历遍,中序历遍和后序历遍。前序历遍:按照 根节点-->左节点-->右节点的顺序历遍中序历遍:按照 左节点-->根节点-->右节点的顺序历遍后序历遍:按照 左节点-->右节点-->根节点的顺序历遍下面给出了leetcode上的三个练习题,可以练习一下。网上的博客写得很好了,直接贴网址。https://blog.csdn....原创 2018-10-23 07:49:05 · 898 阅读 · 0 评论 -
快速排序算法
思路代码#include<iostream>#include<vector>using namespace std;void Quick_Sort(vector<int> &data,int left,int right){ if(left>=right) return; int i=left,j=right-1; int ...原创 2019-03-18 20:44:23 · 78 阅读 · 0 评论 -
相同字符的最远距离
题目给定字一个数字序列,找出其中距离最远的的字符(间隔最远)思路使用一个map<int,int> 保存数据。通过一个循环历遍整个序列。通过map来保存一个序列第一次出现的位置。如果当前元素没有在map中,那么说明是第一次出现,那么将它压入map中,value为下标。如果当前元素已经存在,那么就计算它和最先出现的元素的距离。再和最远距离比较,跟新最远距离和元素。#includ...原创 2019-03-30 16:46:33 · 1024 阅读 · 0 评论 -
找出数组中和为零的最长子序列的长度
题目找到一个数字序列中和为零的最长序,求出这个子序列的长度。例如:{100,1,2,-3,2,-3,1,2,1},其中从和为零的最长序列为{1,2,-3,2,-3,1},一个6个元素,所以长度为6。要求:时间复杂度O(N)思路因为时间复杂度有要求,所以不能用常规暴力法来实现。申请一个数组temp,大小为data.size()+1,即比原来的数组大1.temp[0]=0; ...原创 2019-03-30 17:36:29 · 1297 阅读 · 1 评论 -
查找最大的K个数 查找最小的K个数
思路使用一个容器,大小为K;用这个容器来保存这最大的或者最小的K个数。如果是找最大的K个数,那么,每次和容器中的最小元素比较,如果最小的元素小于当前元素,那么删除这个最小的元素,同时将当前元素插入;如果是找最小的K个数,那么就和容器中最大的元素比较。同理。容器用哪个呢?容器选择用set,set本身就是排序的,始终自动保持排序。那么用迭代器就可以找到最大或者最小的元素。使用这种方法,时间...原创 2019-03-24 09:54:11 · 629 阅读 · 0 评论 -
动态规划 最长公共子序列
https://blog.csdn.net/hrn1216/article/details/51534607原创 2019-04-18 09:32:18 · 125 阅读 · 0 评论