/* c++ 中 std::sort()使用了快速排序的算法,下面看下它的实现算法 快速排序的基本思想:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的数字均比另一部分数字小,则可分别对这两部分进行排序,以达到整个序列有序。 算法描述:https://www.bilibili.com/vi ...
分类:
编程语言 时间:
2021-03-31 11:41:36
阅读次数:
0
一、选择排序 选择排序是一种非常简单而且很直观的排序算法,此排序算法的时间复杂度为O(n²),因此,从时间复杂度来看,需要排序的数据规模越小,效果就越好;它的好处就是在进行排序的过程中不会占用额外的内存空间。 选择排序的基本思想:每一次在n-i+1(i=1,2,3,...,n-1)个记录中选取最小的 ...
分类:
编程语言 时间:
2021-03-18 14:26:58
阅读次数:
0
##基本思想: 1.列表每两个相邻的数,如果前面的比后面大,则交换这两个数 2.一趟排序完成后,则无序区减少一个数,有序区增加一个数 注意:趟,无序区范围 ###代码实现: import random def bubble_sort(lst): for i in range(len(lst)-1): ...
分类:
编程语言 时间:
2021-03-16 13:49:26
阅读次数:
0
冒泡排序思想 基本思想: 冒泡排序,类似于水中冒泡,较大的数沉下去,较小的数慢慢冒起来,假设从小到大,即为较大的数慢慢往后排,较小的数慢慢往前排。 直观表达,每一趟遍历,将一个最大的数移到序列末尾。 算法描述 比较相邻的元素,如果前一个比后一个大,交换之。 第一趟排序第1个和第2个一对,比较与交换, ...
分类:
编程语言 时间:
2021-03-06 14:13:04
阅读次数:
0
字典树存储字符串,查找方便,迅速; 基本思想就是建立一棵树,每一层都有26个节点(对应26个字母),如果这个字符没有的话就占位,有就通过这个节点向下一层建树 Trie树例题 #include <iostream> #include <cstdio> using namespace std; cons ...
分类:
其他好文 时间:
2021-03-02 11:47:03
阅读次数:
0
缓存 1. 缓存的基本思想 很多朋友,只知道缓存可以提高系统性能以及减少请求相应时间,但是,不太清楚缓存的本质思想是什么。 缓存的基本思想其实很简单,就是我们非常熟悉的空间换时间。不要把缓存想的太高大上,虽然,它的确对系统的性能提升的性价比非常高。 其实,我们在学习使用缓存的时候,你会发现缓存的思想 ...
分类:
其他好文 时间:
2021-02-23 14:29:50
阅读次数:
0
230.BST中第k小的元素 基本思想: BST的中序遍历是升序序列。下标为k-1的元素就是第k个元素。 具体实现: 中序遍历后,找下标为k-1的元素。 代码: class Solution: def kthSmallest(self, root, k): """ :type root: TreeN ...
分类:
其他好文 时间:
2021-01-27 14:07:00
阅读次数:
0
冒泡排序 基本介绍 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐 向上冒。 算法优化 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下 ...
分类:
编程语言 时间:
2021-01-27 13:07:53
阅读次数:
0
状态转移算法是由周晓君博士等[4]于2012年正式提出的一种新颖的智能型随机性全局优化方法,它的基本思想是将最优化问题的一个解看成是一个状态, 解的迭代更新过程看成是状态转移过程, 利用现代控制理论的状态空间表达式来作为产生候选解的统一框架, 基于此框架来设计状态变换算子. 与大多数基于种群的进化算 ...
分类:
编程语言 时间:
2020-12-22 11:58:24
阅读次数:
0
标签 稳定排序、非原地排序、比较排序 基本思想 归并排序属于比较类非线性时间排序,号称比较类排序中性能最佳者,在数据中应用中较广。 归并排序是分治法(Divide and Conquer)的一个典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有 ...
分类:
编程语言 时间:
2020-12-14 13:39:09
阅读次数:
5