堆排序的基本思想(小顶堆) 1) 先将初始排列关键字序列(R1,R2...,Rn-1,Rn)构成小顶堆,此堆为初始的无序区.(这里是从最后一个非叶结点向前进行赛选) 2)将堆顶元素R1与最后一个元素Rn交换,此时得到新的无序区(R1,R2...,Rn-1)和新的有序区(Rn),并且Rn小于无序区所有 ...
分类:
编程语言 时间:
2019-01-30 21:51:59
阅读次数:
190
快速排序原理: 选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素或最后一个元素(还可以3个元素(第一个,中间,最后一个)取中)。 java代码:(随机选取一个基准值) 性能分析: 时间复杂度:O(n*logN) 空间复 ...
分类:
编程语言 时间:
2019-01-30 16:12:15
阅读次数:
183
一、线性表 1、线性表中的元素是一对一的关系,除了第一个与最后一个元素之外其他数据元素都是首尾相连的。 如果是一对多就用树来表示,如果是多对多就用网状来表示。 2、线性表的两种存储结构 顺序表:用顺序结构保存数据,数据在内存中是连续的。 链表:用链式存储结构保存数据,数据在内存中是不连续的。 二、顺 ...
分类:
其他好文 时间:
2019-01-27 14:44:45
阅读次数:
163
concat()( 返回一个由两个数组合并组成的==新数组==) join(‘,’)或者join(”)(返回一个由数组中的所有元素连接在一起的 ==String 对象==) pop()(删除数组中的==最后一个元素==并返回该值) push 方法(向数组中添加新元素,==返回数组的新长度==) sh ...
分类:
其他好文 时间:
2019-01-25 11:38:30
阅读次数:
162
改变原数组: 1、pop() 删除数组最后一个元素,如果数组为空,则不改变数组,返回undefined,改变原数组,返回被删除的元素 2、push() 向数组末尾添加一个或多个元素,改变原数组,返回新数组的长度 3、reverse() 颠倒数组中元素的顺序,改变原数组,返回该数组 4、shift() ...
分类:
编程语言 时间:
2019-01-23 14:32:23
阅读次数:
187
基本排序算法 冒泡排序:它是最慢的排序算法之一。 1、不断比较相邻的两个元素,如果前一个比后一个大,则交换位置。 2、当比较完第一轮的时候最后一个元素应该是最大的一个。 3、按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以第二轮的时候最后一个元素不用比较,此后依次 ...
分类:
编程语言 时间:
2019-01-23 01:32:14
阅读次数:
143
C++选代器主要用于容器map,set,vector的遍历 我用1,2,3,4表示容器内按顺序的元素,不代表int型 如图 这里表示容器内有十个元素,上图三个东西都是指针,指向容器内某地址,访问时用*或-> ,a.end()指 的是最后一个元素表示的地址的后一个位置,那里没有东西 在C++11里习惯 ...
分类:
编程语言 时间:
2019-01-22 21:50:49
阅读次数:
173
静态链表 对于没有指针的编程语言,可以用数组替代指针,来描述链表。让数组的每个元素由data和cur两部分组成,其中cur相当于链表的next指针,这种用数组描述的链表叫做静态链表,这种描述方法叫做游标实现法。我们对数组的第一个和最后一个元素做特殊处理,不存数据。让数组的第一个元素cur存放第一个备 ...
分类:
其他好文 时间:
2019-01-22 01:21:51
阅读次数:
198
介绍 ·First - 返回集合中的第一个元素;不延迟 ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟 ·Last - 返回集合中的最后一个元素;不延迟 ·LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值) ·ElementA ...
分类:
其他好文 时间:
2019-01-15 23:34:49
阅读次数:
286
LIstIterator是一个更加强大的Iterator的子类型,它只能用于各种List类的访问,尽管Iterator只能向前移动,但是ListIterator可以双向移动,它还可以产生相对于迭代器在列表指向的当前位置的前一个和后一个元素的索引,并且可以使用set()方法替换它访问过的最后一个元素. ...
分类:
编程语言 时间:
2019-01-12 19:29:43
阅读次数:
177