一、原理
从排序序列的第二个元素开始,依次往前面查询,知道找到一个合适的位置就把它插进去。每个元素在交换完成之后 [0, n] 都是一个有序序列,它的时间复杂度为 O(n^2)。
排序逻辑:
|
1 2 |
for i in (1, n-1) 使用 data[i]前向查找,找到一个合适的位置插入 |
从排序序列的第二个元素开始,依次往前面查询,知道找到一个合适的位置就把它插进去。每个元素在交换完成之后 [0, n] 都是一个有序序列,它的时间复杂度为 O(n^2)。
排序逻辑:
|
1 2 |
for i in (1, n-1) 使用 data[i]前向查找,找到一个合适的位置插入 |
一、原理 选择排序的原理是分治,把排序序列切分成若干个小组后分别排序。每次排序都以随机的一个元素作为哨兵 (一般都以排序区间的中间元素或者首元素作为哨兵),比他大的元素都放到右边,比它小的都放到左边。然后分别对该元素左边和右边的元素再法排序,直到所有的元素都是有序状态。 具体的排序过程描述为: 选取一 ... 阅读更多
python 可以通过 random 包来产生随机数或者执行一些随机操作。
给定一个数据作为随机数种子,和大多数语言一样,python 也可以使用时间来作为随机数种子。
对于普通的变量,python 函数的值传递过程和大多语言一样都是传递参数的副本,函数体内修改参数值不会对外部传参生效:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
def f1(j): j = 9999 def main(): i = 1 f1(i) print i # 输出 1 if __name__ == "__main__": main() |
python 中针对小整数有一个专门的缓存机制,位于 [-5, 257) 之间的小整数会专门分配额外的空间。 它们不会被 GC 回收掉,并且使用这些整数赋值时变量都指向同一个内存地址。 测试代码
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# -*- - coding:utf8 -*- def f1(): print id(-6), id(-5), id(256), id(257) def f2(): print id(-6), id(-5), id(256), id(257) if __name__ == "__main__": f1() f2() |
输出 [crayon-694ab504b828 ... 阅读更多
很久没有用 C++,今天用 C++写链表,结果因为一个小问题卡了好半天。 浪费了大半天才找到问题的原因,这里记录一下,生疏了。。。 创建一个类 CTest ,代码如下:
|
1 2 3 4 5 6 7 8 |
#pragma once class CTest { public: CTest() { i = ; }; ~CTest() { i = ; }; int i; }; |
主函数中创建一个 CTest 指针并打印 i 值: [crayon-694 ... 阅读更多
本安装教程及程序来源于网络,软件下载地址:密码:t5oz 目前最高支持 vs2017,安装后可以在 vs 内部更新。 安装步骤: 删除原有 VA_X 并重新安装软件包中携带的安装程序 复制 Crack 目录下的破解补丁到相应的目录下覆盖即可 各版本破解补丁目录: 2008: 安装目录,默认位于 c:\Program ... 阅读更多
一、 df 命令 df 命令用来查看各个磁盘占用空间大小,默认以字节为单位,可以添加-h 选项以合适的单位显示。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[ma@ma ~]$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda1 41151808 5702332 33352428 15% / tmpfs 961040 0 961040 0% /dev/shm /dev/vdb1 20511244 12006916 7455760 62% /data /dev/vdc1 20511244 82052 19380624 1% /disk1 ossfs 274877906944 0 274877906944 0% /ossdata [ma@ma ~]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 5.5G 32G 15% / tmpfs 939M 0 939M 0% /dev/shm /dev/vdb1 20G 12G 7.2G 62% /data /dev/vdc1 20G 81M 19G 1% /disk1 ossfs 256T 0 256T 0% /ossdata |
二、 du 命令 du 命令用来统计文件大小,-h 选项以合适单位显示,-s 选项显示总计可以统计文件夹大小: [crayon- ... 阅读更多
0x01 VS2015 专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2 企业版:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV 0x02 VS2017 专业版:KBJFW-NXHK6-W4WJM-CRMQB-G3CDH 企业版:NJVYC-BMHX2-G77MM-4X ... 阅读更多
一、 waitgroup 介绍 多线程编程中,经常会遇到这样的一种场景:main 函数中为了等待其他线程执行完,在 return 之前都要执行 sleep 以争取更多的时间给其他线程执行。例如:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package main import ( "fmt" "time" ) func main(){ for i := 0; i < 100 ; i++{ go fmt.Println(i) } time.Sleep(time.Second) } |
主线程为了等待 goroutine 都运行完毕,不得不在 ... 阅读更多