查找_顺序查找

查找_顺序查找

bingliaolong 5年前 3 0

简述 从数据的第一个元素开始,依此比较,直到找到目标或者查找失败 复杂度 时间复杂度 N 实现 优化

排序_桶排序

排序_桶排序

bingliaolong 5年前 5 0

简述 桶排序需要创建若干个桶来协助排序。 所谓桶,每个桶bucket代表一个区间范围,里面可以承载一个或多个元素。 复杂度 名称 最好 平均 最差 空间 稳定性 桶排序 n+k n nlog(n) n 是 实现 算法导论 桶排序思想,假设对数组A[p...r]排序,首先将这些元素...

排序_计数排序

排序_计数排序

bingliaolong 5年前 4 0

简述 计数排序适用于对一定范围内的元素进行排序。 它的思路就是创建一个范围性的计数数组,用下标去对应元素的值,有几个元素,相应下面命中几次。然后根据元素命中次数对下标值进行一次输出,得到的序列就是有序的序列。 它是不需要进行元素比较。 注意: 当数列最大和最小值差距过大时,不适合...

排序_堆排序

排序_堆排序

bingliaolong 5年前 11 0

二叉堆 特性 最大堆的堆顶是整个堆中的最大元素 最小堆的堆顶是整个堆中的最小元素 每次删除旧堆顶,调整后的新堆顶都是大小仅次于旧堆顶的节点。 只要反复删除堆顶,反复调整二叉堆,所得到的集合就会成为一个有序集合。 简述 堆排序算法步骤: 把无序数组构建成二叉堆。需要从小到大排序,就...

排序_快速排序

排序_快速排序

bingliaolong 5年前 24 0

简述 快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移到数列一边,比它小的元素移到数列的另一边,从而把数列拆解成两个部分。 快速排序是从冒泡排序演变而来的。 快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。 为什么快速排序比较快? 因为它使用了分治法...

排序_冒泡排序

排序_冒泡排序

bingliaolong 5年前 12 0

简述 冒泡排序通过反复遍历要排序的列表,比较每对相邻项,并以升序或降序的方式交换它们。重复操作列表,知道不需要交换为止。 复杂度 名称 最好 平均 最差 空间 稳定性 冒泡排序 n n2 n2 1 是 理解 冒泡排序,有n个数字,就要进行n次大循环 每次大循环,会找到所有数里面的...

C++并发编程 _管理线程

C++并发编程 _管理线程

bingliaolong 5年前 9 0

介绍 每个C++进程都拥有至少一个线程,它是由C++在运行时启动的。该线程运行着main()函数。 我们自己的程序可以继续启动具有其他函数作为入口的线程。然后,这些线程连同初始线程一起,并发运行。 正如程序会在main()函数返回时退出那样,当指定的入口函数返回时,该线程就会退出...

C++并发编程_概念了解

C++并发编程_概念了解 2

bingliaolong 5年前 11 0

什么是并发 概念 在最简单,最基本的层面,并发是指两个或更多的独立活动同时发生。 计算机的并发 指的是在单个系统里,同时执行多个独立的活动,而不是顺序地或是一个接一个地。 两种并发 任务切换 以前,大多数计算机都只有一个处理器,具有单个处理单元或核心,至今有很多机器仍是这样。 对...

STL_list

STL_list 3

bingliaolong 5年前 2 0

节点 迭代器 list迭代器必须有能力指向list的节点,并有能力进行正确的递增、递减、取值、成员存取等操作。 重要性质: 插入(insert)和结合(splice)都不会造成原有的list迭代器失效。 数据结构 SGI list不仅是一个双向链表,而且是一个环状双向链表。 示意...

STL_vector

STL_vector

bingliaolong 5年前 4 0

区别 array是静态空间,一旦配置了就不能改变。 vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。 摘要 迭代器 vector维护的是一个连续线性空间,所以不论其元素型别为何,普通指针都可以作为vector的迭代器而满足所有必要条件 因为vect...

扫一扫二维码分享