E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
白话经典算法系列
【算法】堆,最大堆(大顶堆)及最小堆(小顶堆)的实现
点击打开漫谈经典排序算法:一、从简单选择排序到堆排序的深度解析链接
白话经典算法系列
之七堆与堆排序二叉排序树与二叉堆堆排序(注:这篇文章说明了如何从一个数组构建一个最大堆,推荐看)最大堆的插入/删除/调整
疏楼夜话 ι
·
2023-11-17 16:57
归并排序
引用来自
白话经典算法系列
推荐博客:Robin'sSpace归并排序是利用递归和分而治之的技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好序的半子表合并成为越来越大的有序序列
BeijingIamback
·
2021-06-05 03:18
【
白话经典算法系列
之十三】随机生成和为S的N个正整数——投影法
【
白话经典算法系列
之十三】随机生成和为S的N个正整数——投影法随机生成和为S的N个正整数有很多种解法。下面讲解一种比较高效且比较有趣味性的解法——投影法。
MoreWindows
·
2020-09-14 00:11
白话经典算法系列
Windows编程
Windows
C/C++/C#
编程
白话经典算法
【
白话经典算法系列
之十二】数组中只出现1次的两个数字(百度面试题)
微博http://weibo.com/MoreWindows已开通,欢迎关注。本系列文章地址:http://blog.csdn.net/MoreWindows/article/category/859207首先来看题目要求:在一个数组中除两个数字只出现1次外,其它数字都出现了2次,要求尽快找出这两个数字。考虑下这个题目的简化版——数组中除一个数字只出现1次外,其它数字都成对出现,要求尽快找出这个数
MoreWindows
·
2020-08-24 13:27
白话经典算法系列
Windows
C/C++/C#
编程
白话经典算法
【
白话经典算法系列
之十一】一道有趣的GOOGLE面试题 --【解法2】
本系列文章地址:http://blog.csdn.net/MoreWindows/article/category/859207上一篇《
白话经典算法系列
之十一道有趣的GOOGLE面试题》中对一道有趣的GOOGLE
MoreWindows
·
2020-08-22 16:35
白话经典算法系列
Windows
C/C++/C#
编程
白话经典算法
C++ Heap 堆
C++Heap堆C++STL学习——heap堆相关算法详解与C++编程实现(Heap)
白话经典算法系列
之七堆与堆排序STL堆操作初始化堆vectorvectorArr={3,4,5,6,7,1,2};/
桑来93
·
2020-08-20 17:53
[数据结构与算法]
白话经典算法系列
之七 堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父
MoreWindows
·
2020-08-20 17:57
白话经典算法系列
Windows
C/C++/C#
编程
白话经典算法
堆
堆排序
数据结构
白话经典算法
算法
白话经典算法系列
之五 归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是採用分治法(DivideandConquer)的一个很典型的应用。首先考虑下怎样将将二个有序数列合并。这个很easy,仅仅要从比較二个数列的第一个数,谁小就先取谁,取了后就在相应数列中删除这个数。然后再进行比較,假设有数列为空,那直接将还有一个数列的数据依次取出就可以。//将有序数组a[]和b[]合并到c[]中voidMemeryArray(
weixin_34249678
·
2020-08-18 04:21
数据结构与算法
白话经典算法系列
之九 从归并排序到数列的逆序数对(微软笔试题)
首先来看看原题微软2010年笔试题在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序数对。一个排列中逆序的总数就称为这个排列的逆序数。如{2,4,3,1}中,2和1,4和3,4和1,3和1是逆序数对,因此整个数组的逆序数对个数为4,现在给定一数组,要求统计出该数组的逆序数对个数。计算数列的逆序数对个数最简单的方便就最从前向后依次统计每个数字与它后面的数
MoreWindows
·
2020-08-17 20:32
白话经典算法系列
Windows
C/C++/C#
编程
白话经典算法
白话经典算法系列
之二 直接插入排序的三种实现
直接插入排序(InsertionSort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。设数组为a[0…n-1]。1.初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12.将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。3.i++并重复第二步直到i==n-1。排序完成。下面给出严格按
MoreWindows
·
2020-08-16 04:23
白话经典算法系列
Windows
C/C++/C#
编程
白话经典算法
算法
直接插入排序(Insert_sort)
白话经典算法系列
之二直接插入排序的三种实现#includevoidInsert_sort(inta[],intn){for(inti=1;i=0;j--){if(a[j]
HOLLAY
·
2020-08-16 04:51
排序
快速排序
白话经典算法系列
之六快速排序快速搞定本文来自:http://blog.csdn.net/morewindows/article/details/6684558快速排序由于排序效率在同为O(N*logN)
mal327
·
2020-08-09 22:02
数据结构
面试
算法
腾讯
微软
【
白话经典算法系列
之十四】腾讯2012年实习生笔试加分题
地址:http://blog.csdn.net/morewindows/article/details/8742666转载请标明出处,谢谢。欢迎关注微博:http://weibo.com/MoreWindows之前参加2012年腾讯实习生笔试时,在考场中遇到一道加分题,当时灵光一闪,直接挥笔就解决这道题目。今天看到学校论坛上有师弟师妹们在询问这题的解法,就写篇博客来分享我的解法吧,也欢迎大家讨论其
iteye_2116
·
2020-07-16 00:55
快速排序
这个博主写的通俗易懂:
白话经典算法系列
之六快速排序快速搞定贴上我自己的代码:voidq_sort(int*nums,intl,intr){if(l=x&&i<j){j--;}nums[i]=nums
huangmi2958
·
2020-07-16 00:12
C/C++
小顶堆的插入删除操作
可以发现从这个新数据的父结点到根结点必然为一个有序的数列,现在的任务是将这个新数据插入到这个有序数据中——这就类似于直接插入排序中将一个数据并入到有序区间中,对照《
白话经典算法系列
之二直接插入排序的三种实现
jinzi锦梓
·
2020-07-15 14:02
VC
白话经典算法系列
之五 归并排序的实现(讲的真好)
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。[cpp]viewplaincopy//将有序数组a[]和b[]合并到c[]中v
yuehailin
·
2020-07-12 18:25
白话经典算法系列
之八 MoreWindows白话经典算法之七大排序总结篇
在我的博客对冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法进行了详细的讲解,并做成了电子书以供大家下载。下载地址为:http://download.csdn.net/detail/morewindows/4443208。有网友提议到这本《MoreWindows白话经典算法之七大排序》电子书讲解细致用来平时学习是非常好的,但是页数有22页,不太合适做面
MoreWindows
·
2020-07-10 22:35
白话经典算法系列
Windows编程
Windows
C/C++/C#
编程
白话经典算法
C++实现基本排序算法2:冒泡排序和快速排序
1.冒泡排序和快速排序的基本原理参考文章:c++实现冒泡排序冒泡排序(C/C++实现)算法3:最常用的排序——快速排序
白话经典算法系列
之六快速排序快速搞定2.参考代码#include#includevoidSwap
alxe_made
·
2020-07-07 03:40
C++
MoreWindows博客目录(微软最有价值专家,原创技术文章152篇)
《
白话经典算法系列
之一冒泡排序的三种实现》2.《
白话经典算法系列
之二直接插入排序的三种实现》3.《
白话经典算法系列
之三希尔排序的实现》4.
MoreWindows
·
2020-07-06 23:01
[C/C++基础知识] 一篇就让你彻底搞懂qsort快速排序的文章
快速排序二.快速排序的原理及手写快排源码三.LeetCode关于TwoSum的快排实现参考文献:《算法分析与设计》关于分治法那章内容如何利用C语言中的qsort库函数实现快速排序-by:stpeace
白话经典算法系列
之六快速排序快
Eastmount
·
2020-07-01 09:36
C/C++基础知识
数据结构
面试工作
C语言
快速排序
sort
结构快排
分治法
白话经典算法系列
之一 冒泡排序的三种实现(转)
#includeusingnamespacestd;//交换两个数,这里用到了引用voidSwap(int&a,int&b){inttemp;temp=a;a=b;b=temp;return;}voidBubbleSort1(inta[],intlen){inti,j;for(i=0;ia[j]){Swap(a[j-1],a[j]);}}}return;}/*优化这个版本*设置一个标志flag,如
zhangyunhong98
·
2020-06-30 14:55
笔试题
白话经典算法系列
之二 直接插入排序的三种实现(转)
http://blog.csdn.net/morewindows/article/details/6665714#includeusingnamespacestd;//交换两个数,这里用到了引用voidSwap(int&a,int&b){inttemp;temp=a;a=b;b=temp;return;}voidInsertion_Sort2(inta[],intlen){inti,j;intte
zhangyunhong98
·
2020-06-30 14:55
笔试题
最小堆最大堆的详细解读
点击打开漫谈经典排序算法:一、从简单选择排序到堆排序的深度解析链接
白话经典算法系列
之七堆与堆排序二叉排序树与二叉堆堆排序(注:这篇文章说明了如何从一个数
qwezhaohaihong
·
2020-06-26 04:15
数据结构
堆排序算法的实现
参考博客:
白话经典算法系列
之七堆与堆排序参考视频:堆排序(heapsort)/*************************************功能:对数组元素进行堆排序*作者:khq*时间:2020
khq溪风
·
2020-06-24 01:55
数据结构基础
归并排序算法的实现
参考博客:
白话经典算法系列
之五归并排序的实现参考视频:归并排序/************************功能:归并排序*作者:khq*时间:2020.4.22******************
khq溪风
·
2020-06-24 01:25
数据结构基础
排序算法
数据结构
归并排序
白话经典算法系列
之十 一道有趣的GOOGLE面试题
微博http://weibo.com/MoreWindows已开通,欢迎关注。最近在微博上看到一道有趣的GOOGLE面试题,见下图:文字版:一个大小为n的数组,里面的数都属于范围[0,n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n)时间。这个题目要求用O(n)的时间复杂度,这意味着只能遍历数组一次。同时还要寻找重复元素,很容易想到建立哈希表来完成,遍历数组时将每个元素
MoreWindows
·
2020-06-22 01:27
白话经典算法系列
Windows
C/C++/C#
编程
白话经典算法
白话经典算法系列
之五 归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。//将有序数组a[]和b[]合并到c[]中voidMemeryArray(int
MoreWindows
·
2020-06-22 01:27
白话经典算法系列
Windows
C/C++/C#
编程
白话经典算法
数据结构与算法-面试准备
1、排序冒泡排序,直接排序,插入排序十大经典排序算法最强总结-hellozhxy的博客-CSDN博客快速排序
白话经典算法系列
之六快速排序快速搞定-MoreWindowsBlog-CSDN博客归并排序归并排序详解
景唔景景景景景色分明
·
2020-04-10 02:41
秒杀多线程面试题系列-如何使用多线程,详细分析多线程的重点难点必考点——多线程同步互斥问题。各文章讲解生动细致,针对性强。必定也能助你在面试中秒杀所有多线程面试题
共17篇博文【
白话经典算法系列
之十七】数组中只出现一次的数数组A中,除了某一个数字x之外,其他数字都出现了三次,而x出现了一次。请给出最快的方法找到x。
Albert陈凯
·
2020-02-18 19:09
WarMj:快速排序算法(Quick Soft)
参考资料:
白话经典算法系列
之六快速排序快速搞定思维导图排序效果代码分析#include#include#defineNUMBER5//targe[]:目标数组retain:保留元素voidquick_sort
WarMj
·
2020-01-08 07:33
算法-快速排序算法
本文主要思想借鉴于这篇文章:
白话经典算法系列
之六快速排序快速搞定http://blog.csdn.net/morewindows/article/details/6684558时间复杂度:时间复杂度:O
不二王1006
·
2020-01-05 13:20
2.1-插入排序-直接插入
参考链接插入排序:直接插入排序(StraightInsertionSort)
白话经典算法系列
之二直接插入排序的三种实现基本思想每次将一个待排序的元素,插入到前面已经排好序的子序列中,直到全部元素插入完成为止
梦即是幻
·
2019-12-25 04:40
2.2-插入排序-希尔排序
参考链接插入排序:希尔排序(Shell'sSort)
白话经典算法系列
之三希尔排序的实现希尔排序是1959年由D.L.Shell提出来的,相对直接排序有较大的改进。希尔排序又叫缩小增量排序。
梦即是幻
·
2019-12-24 20:48
3.2-选择排序-堆排序
参考链接选择排序:堆排序(HeapSort)
白话经典算法系列
之七堆与堆排序堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。
梦即是幻
·
2019-11-30 09:52
3.1-选择排序-简单选择排序
参考链接选择排序:简单选择排序(SimpleSelectionSort)
白话经典算法系列
之四直接选择排序及交换二个数据的正确实现基本思想:直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接插入排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区
梦即是幻
·
2019-11-29 06:09
7种常用排序算法的实现示例
这里附上一些我参考过的博客:7种排序算法(系列博客)-静默虚空常用排序算法总结(一)-SteveWang[直观学习排序算法]视觉直观感受若干常用排序算法-todayx
白话经典算法系列
-MoreWindows
quFFFFLLL
·
2019-11-08 06:54
Java--快速排序
本文章参考博客:
白话经典算法系列
之六快速排序快速搞定1.思路1.数组中选一个基数key,通常是取数组第一个(这时候会在坐标0的位置留下空位);2.定义两个指针left,right,分别指向数组最左端和最右端
二进制的二哈
·
2019-03-22 18:26
归并排序(分治法)
借鉴---
白话经典算法系列
之五归并排序的实现和这篇博客https://www.cnblogs.com/chengxiao/p/6194356.html这里我们分两块来看,先看第一块。
doubleguy
·
2018-08-03 17:30
分治与归并
数据结构
白话经典算法系列
之六 快速排序 快速搞定
原文链接:
白话经典算法系列
之六快速排序快速搞定快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想—-分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯
Nishadiaoma
·
2016-10-07 08:33
经典算法
解忧杂货铺
NavicatPremiumforMac11.2.9破解版–Mac上最强大的数据库客户端5.预览图像上传之前用AngularJS6.IntelliJ-idea15.0.2破解方法7.get请求参数中特殊字符处理办法1算法:1.1排序1.1.1
白话经典算法系列
之六快速排序快速搞定
Code_Granker
·
2016-09-09 14:29
记录
数据结构---排序
排序排序的知识点整理:可以看这位大神的
白话经典算法系列
中的排序以下只有解题思路。魔法优惠券(25分)在火星上有个魔法商店,提供魔法优惠券。
HerdingCat
·
2016-08-31 09:14
数据结构
1.2-交换排序-快速排序
参考链接交换排序:快速排序(QuickSort)
白话经典算法系列
之六快速排序快速搞定快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。
梦即是幻
·
2016-08-04 08:25
1.1-交换排序-冒泡
参考链接交换排序:冒泡排序(BubbleSort)
白话经典算法系列
之一冒泡排序的三种实现基本思想以从小到大排序举例从第一个元素开始依次比较数组相邻2个数,直到N-i,如果前面的元素大于后面的元素,就将二个元素交换
梦即是幻
·
2016-08-01 17:55
白话经典算法系列
之一 冒泡排序的三种实现
冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,否则排序完成。按照定义很容易写出代码://冒泡排序1 voidBubbleSort1(inta[],intn)
Rebirth_Love
·
2016-05-05 11:00
冒泡排序
白话经典算法系列
之七 堆与堆排序
白话经典算法系列
之七堆与堆排序:http://blog.csdn.net/morewindows/article/details/6709644剑指Offer题目:数据流中的中位数:http://wiki.jikexueyuan.com
ly969434341
·
2016-04-19 11:00
白话经典算法系列
之一 冒泡排序的三种实现
http://blog.csdn.net/morewindows/article/details/6657829 冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N不为0就重复前面二步,
taotaoah
·
2016-03-30 07:00
面试算法——排序
0.算法时间复杂度:算法的时间复杂度和空间复杂度-总结:http://blog.csdn.net/zolalad/article/details/118487391.快速排序:
白话经典算法系列
之六快速排序快速搞定
ly969434341
·
2016-03-29 11:00
白话经典算法系列
之七 堆与堆排序
http://blog.csdn.net/morewindows/article/details/6709644 堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左
taotaoah
·
2016-03-26 17:00
白话经典算法系列
之六 快速排序 快速搞定
http://blog.csdn.net/morewindows/article/details/6684558快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写
taotaoah
·
2016-03-26 17:00
归并排序
例如:以下代码参考自:
白话经典算法系列
之五归并排序的实现;原文写的很好,但我稍作了改动,便于理解。不想多说什么,代码有详细注释,我想关键点是:递归二分、合并的“后序遍历”方法的理解。
Since20140504
·
2016-02-26 09:00
上一页
1
2
3
4
5
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他