![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典算法系列
文章平均质量分 63
IMMUNIZE
immunize yourself!
展开
-
20210408:力扣(二分查找法的两种写法以及变体题目)
二分查找法的两种写法以及变体题目写在前面题目思路与算法代码实现写在最后写在前面关于二分查找,真的是一个非常实用的查找算法,主要有两种写法,今天在总结时再次碰到,再次整理,方便后续查看复习。这两种写法分别是递归式写法和循环式写法。递归式写法// 从已排序数组sorted_arr中寻找target,找到则返回truebool binary_search(vector<int> & sorted_arr,int begin,int end,int target) {原创 2021-04-08 23:55:37 · 246 阅读 · 0 评论 -
20200104:重温十大排序
十大排序重温温故而知新,可以为师矣写在最前面文章框架快速排序堆排序希尔排序计数排序桶排序冒泡排序鸡尾酒排序选择排序插入排序基数排序结语温故而知新,可以为师矣重新过一下已经掌握的排序方法,最基础的东西往往最关键!写在最前面新年伊始就得了场感冒,咳嗽从19年咳到了20年,考完研也休息的差不多了,大家一起共勉!文章框架快速排序package com.immunize.December...原创 2020-01-04 23:23:58 · 101 阅读 · 0 评论 -
20191024:单调栈问题的引出
单调栈问题的引出题目代码实现题目Leetcode习题1124:表现良好的最长时间段做上题时自己暴力的做法会超时,但是时间不允许继续往下探究,明天完成单调栈的探究。代码实现1124题暴力解法的代码,偶尔超时,偶尔通过,但根据时间复杂度来算的话应该是超时的。package com.immunize.leetcode.longestWPI;import java.util.Lin...原创 2019-10-24 22:08:16 · 123 阅读 · 0 评论 -
20191015:基数排序法
基数排序法描述示例代码实现描述基数排序法则是属于分配式排序, 基数排序法又称桶排序法顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些「桶」中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度O(nlog®m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法。示例/*73, 22, 93, 43, 55, 14, 28, 65,...原创 2019-10-15 23:11:16 · 149 阅读 · 0 评论 -
20191014:快速排序1.2
快速排序1.2描述代码实现描述昨天的文章提到了参考点的选择是快速排序法的效率关键之一,在这边的快速排序法的轴选择方式更加快了快速排序法的效率。代码实现// QuickPartition.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#includ...原创 2019-10-14 23:47:39 · 114 阅读 · 0 评论 -
20191013:快速排序1.1
快速排序1.1描述代码实现描述在昨天的文章中,每次将最左边的元素设为轴,而快速排序法的加速在于轴的选择,在这个例子中,只将轴设定为中间的元素,依这个元素作基准进行比较,这可以增加快速排序法的效率。代码实现C++实现:// Quick2.cpp : 定义控制台应用程序的入口点。//#include "StdAfx.h"#include <stdio.h>#includ...原创 2019-10-13 23:41:11 · 115 阅读 · 0 评论 -
20191012:快速排序
快速排序描述代码实现描述快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定),虽然快速排序法在最差状况下可以达O(n2),但是在多数的情况下,快速排序法的效率表现是相当不错的。快速排序法的基本精神是在数列中找出适当的轴心,然后将数列一分为二,分别对左边与右边数列进行排序,而影响快速排序法效率的正是轴心的选择。代码实现#include "StdAfx.h"...原创 2019-10-13 01:42:42 · 89 阅读 · 0 评论 -
20191011:冒泡排序的改良版--Shaker排序
Shaker排序法描述代码实现描述简单来讲,Shaker排序就是一个两个方向的冒泡排序,也称为鸡尾酒排序,双向冒泡排序。代码实现package com.immunize.Arithmetic;/** * 气泡排序或冒泡排序 改进版 * * Shaker排序法,双向冒泡排序,鸡尾酒排序 * * @author Mr IMMUNIZE * */public class ...原创 2019-10-12 00:04:37 · 204 阅读 · 0 评论 -
20191010:希尔排序代码详解
Shell排序实现算法描述代码实现算法描述Shell排序法最初是D.L Shell于1959所提出,假设要排序的元素有n个,则每次进行插入排序时并不是所有的元素同时进行时,而是取一段间隔。Shell首先将间隔设定为n/2,然后跳跃进行插入排序,再来将间隔n/4,跳跃进行排序动作,再来间隔设定为n/8、n/16,直到间隔为1之后的最后一次排序终止,由于上一次的排序动作都会将固定间隔内的元素排...原创 2019-10-11 00:30:48 · 153 阅读 · 0 评论 -
20191007:选择排序,插入排序,冒泡排序详解
选择排序,插入排序,冒泡排序详解描述图例代码实现描述选择排序:将要排序的对象分作两部份,一个是已排序的,一个是未排序的,从后端未排序部份选择一个最小值,并放入前端已排序部份的最后一个。插入排序:像是玩朴克一样,我们将牌分作两堆,每次从后面一堆的牌抽出最前端的牌,然后插入前面一堆牌的适当位置。冒泡排序:顾名思义,就是排序时,最大的元素会如同气泡一样移至右端,其利用比较相邻元素的方法,将大的...原创 2019-10-07 23:44:51 · 172 阅读 · 0 评论 -
20190925:(经典算法系列)河内之塔
河内之塔题目大致思路代码实现题目河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命...原创 2019-09-25 22:12:47 · 208 阅读 · 0 评论