算法
易殇
热爱生活
展开
-
滑动窗口思想习题验证
滑动窗口习题一,无重复字符的最长字串要求给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:代码int...原创 2020-02-04 23:07:56 · 813 阅读 · 0 评论 -
二分查找详解
二分查找寻找一个数(非递归)首先二分查找的基础是在一个有序数组上进行的。非递归代码如下:int search(vector<int>& nums, int target) { int low = 0,high = nums.size()-1,mid; while(low<=high) //当查询数组为空时,结束循环 { ...原创 2019-12-31 14:28:02 · 294 阅读 · 0 评论 -
交换排序-冒泡排序
交换排序-冒泡排序基本思想:通过无序区中相邻记录关键字间的比较和位置交换,使关键字最小的记录如气泡一般逐渐往上漂浮直至水面,所以叫冒泡法。代码从后往前冒,从小到大排序void BubbleSort(vector<int>& nums){ int n = nums.size()-1; for(int i = 0;i<=n;i++) ...原创 2019-12-27 23:35:01 · 160 阅读 · 0 评论 -
插入排序-希尔排序
插入排序-希尔排序希尔排序实际是一种分组排序方法基本思想:取一个增量为组距,相同组距的记录放在同一个组排序,增量不断减少,直至增量为1,即最后一遍排序为直接插入排序。代码void ShellSort(int R[],int n){int i,j,gap;int temp;gap = n/2; //增量while(gap>0){ for(i=gap;i<...原创 2019-12-24 00:24:10 · 138 阅读 · 0 评论 -
插入排序-二分插入排序
插入排序——二分插入排序在一个有序表中进行插入与排序,查找采用二分查找法。代码void InsertSort(int a[],int n){int i,j,low,high,mid;int temp;for(i=1;i<n;i++){ temp = a[i]; low = 0; high = i-1; while(low<=high)...原创 2019-12-22 16:58:31 · 292 阅读 · 0 评论 -
插入排序-直接插入排序
插入排序——直接插入排序基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的的子表的适当位置中去,直到插入全部记录为止。直接插入排序:不断移动,不断比较,先把需要移动的元素保存起来,然后移动的时候采用后一个数组覆盖前一个的形式,最后再把保存的元素赋给插入位置上的元素。代码 viod insertsort(int array[],int n){int temp; ...原创 2019-12-21 18:46:47 · 165 阅读 · 0 评论