排序算法三:冒泡排序

一、原理 冒泡排序的原理很简单, 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序 (如从大到小、首字母从从 Z 到 A) 错误就把他们交换过来。 冒泡排序是一种稳定的排序算法。 冒泡排序不管在什么情况下,时间复杂度都是 O() 。 对比插入排序来说,在平均的情况下,插入排序性能是冒泡排序的两倍。 ... 阅读更多

排序算法二:选择排序

一、原理 选择排序 (Selection sort) 是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小 (或最大) 的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小 (大) 元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序 ... 阅读更多

排序算法一:插入排序

一、原理

从排序序列的第二个元素开始,依次往前面查询,知道找到一个合适的位置就把它插进去。每个元素在交换完成之后 [0, n] 都是一个有序序列,它的时间复杂度为 O(n^2)

排序逻辑:

阅读更多

排序算法六:快速排序

一、原理 选择排序的原理是分治,把排序序列切分成若干个小组后分别排序。每次排序都以随机的一个元素作为哨兵 (一般都以排序区间的中间元素或者首元素作为哨兵),比他大的元素都放到右边,比它小的都放到左边。然后分别对该元素左边和右边的元素再法排序,直到所有的元素都是有序状态。 具体的排序过程描述为: 选取一 ... 阅读更多

python 中函数值的传递方式

0x01 传递非引用对象

对于普通的变量,python 函数的值传递过程和大多语言一样都是传递参数的副本,函数体内修改参数值不会对外部传参生效:

阅读更多

python 中的小整数缓存

python 中针对小整数有一个专门的缓存机制,位于 [-5, 257) 之间的小整数会专门分配额外的空间。 它们不会被 GC 回收掉,并且使用这些整数赋值时变量都指向同一个内存地址。 测试代码

输出 [crayon-6949323d2575 ... 阅读更多

C++类构造函数和指针共同使用的一次错误记录

很久没有用 C++,今天用 C++写链表,结果因为一个小问题卡了好半天。 浪费了大半天才找到问题的原因,这里记录一下,生疏了。。。 创建一个类 CTest ,代码如下:

主函数中创建一个 CTest 指针并打印 i 值: [crayon-694 ... 阅读更多

Visual studio 破解安装 VA_X

本安装教程及程序来源于网络,软件下载地址:密码:t5oz 目前最高支持 vs2017,安装后可以在 vs 内部更新。 安装步骤: 删除原有 VA_X 并重新安装软件包中携带的安装程序 复制 Crack 目录下的破解补丁到相应的目录下覆盖即可 各版本破解补丁目录: 2008: 安装目录,默认位于 c:\Program ... 阅读更多