#插入排序

Redis setNX 实现分布式锁(重复数据插入可用其来实现排他锁)

使用Redis的SETNX命令可以实现分布式锁,下文介绍其实现方法。/SETNXkeyvalue将key的值设为value,当且仅当key不存在。若给定的key已经存在,则SETNX不做任何动作。SETNX是SETifNoteXists的简写。返回整数,具体为-1,当key的值被设置-0,当key的值没被设置/redi...

插入元素

 虽然DOM为操作节点提供了细致入微的控制手段,但是在需要文档插入大量新HTML标记的情况下,通过DOM操作仍然非常麻烦,因为不仅要创建一系列DOM节点,而且还要按照正确的顺序进行连接。相对而言,使用插入标记的技术,直接插入HTML字符串不仅更简单,速度也更快。在读模式下,innerHTML属性返回与调用元素...
代码星球 ·2021-01-26

最全排序算法原理解析、java代码实现以及总结归纳

  十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。   详情如...

C++ STL中Map的按Key排序和按Value排序

map是用来存放<key,value>键值对的数据结构,可以很方便快速的根据key查到相应的value。假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择。我们这样定义,map<string,int>,其中学生姓名用string类型,作为Key...
代码星球 ·2021-01-24

排序算法小结

排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。    我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们...
代码星球 ·2021-01-24

8-4.桶排序算法详解

1.桶排序介绍桶排序(Bucketsort)是一种基于计数的排序算法,工作的原理是将数据分到有限数量的桶子里,然后每个桶再分别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。当要被排序的数据内的数值是均匀分配的时候,桶排序时间复杂度为Θ(n)。桶排序不同于快速排序,并不是比较排序,不受到时间复杂度...
代码星球 ·2021-01-24

8-3.基数排序详解

编程论到极致,核心非代码,即思想。所以,真正的编程高手同时是思想独到及富有智慧(注意与聪明区别)的人。每一个算法都是一种智慧的凝聚或萃取,值得我们学习从而提高自己,开拓思路,更重要的是转换思维角度。其实,我们大多数人都活在“默认状态”下。没有发觉自己的独特可设置选项-----思想。言归正传(呵呵!恢复默认状态),以下学...
代码星球 ·2021-01-24

8-2.计数排序

计数排序的基本思想是:统计一个数序列中小于某个元素a的个数为n,则直接把该元素a放到第n+1个位置上。当然当过有几个元素相同时要做适当的调整,因为不能把所有的元素放到同一个位置上。计数排序假设输入的元素都是0到k之间的整数。//8-2.计数排序.cpp:定义控制台应用程序的入口点。//#include"stdafx.h...
代码星球 ·2021-01-24

堆排序详解

堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最...
代码星球 ·2021-01-24

2-3.归并排序详解

归并排序基本思想:设两个有序的子序列(相当于输入序列)放在同一序列中相邻的位置上:array[low..m],array[m+1..high],先将它们合并到一个局部的暂存序列temp(相当于输出序列)中,待合并完成后将temp复制回array[low..high]中,从而完成排序。在具体的合并过程中,设置i,j和p三...
代码星球 ·2021-01-24

排序算法一:快速排序

快速排序的第一种实现(单指针移动,挖空填数)快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来...
代码星球 ·2021-01-24

博客园代码高亮插件(类似csdn的代码插入)

博客园内置支持SyntaxHighlighter代码着色,使用此内置着色特性需要将博客的默认编辑器改为TinyMCE(“管理”-“选项”中设置)。如果使用CuteEditor,CuteEditor会自动去除代码中的空格,造成代码格式破坏。如果您使用WindowsLiveWriter写博客(配置步骤),通过Windows...

三路快速排序算法

1、三路快速排序算法的基本思想之前的快速排序算法都是将序列分成<=v和>v或者是<v和>=v的两个部分,而三路快速排序是将序列分成三个部分:<v、=v、>v,如下图所示:  首先v元素还是作为"基准"元素,e表示当前遍历索引值指向的元素,也就是待考虑的元素,从图中...
代码星球 ·2021-01-24

双路快速排序法

1、算法出现的背景之前讲的,当我们排序的是一个近乎有序的序列时,快速排序会退化到一个O(n^2)级别的排序算法,而对此的改进就是引入了随机化快速排序算法;但是当我们排序的是一个数值重复率非常高的序列时,此时随机化快速排序算法就不再起作用了,而将会再次退化为一个O(n^2)级别的排序算法,那为什么会出现这种情况呢?且听下...
代码星球 ·2021-01-24

自底向上的归并排序算法

1、什么是自底向上的归并排序?说到底,不管是前面说的自顶向下的归并排序还是现在讲的自底向上的归并排序,其实质都是归并。来看看一个演示过程: 这个就是待排序的数组序列  先将数组序列以2个元素为一组分成4组,每个组内部分成2个子序列进行向上合并  这是合并之后的效果&nb...
首页上一页...1516171819...下一页尾页