什么是堆 1.所有 父节点 的值 都大于 (小于)子节点 的 值 2.属于完全 二叉树 堆排序思路 1.先定义一个调整堆的函数, 保证以 某点为 父节点进行调整, 并且保证 不 打乱 子节点 以下的 子树的 堆结构 , 所以 用到 递归思想 2.从头遍历 到 树尾, 先进行 首尾交换, 再进行 构建 ...
分类:
编程语言 时间:
2020-04-21 09:31:21
阅读次数:
81
一、本地是Windows的pycharm,将BSTestRunner放在lib下,可以正常运行,放到linux环境后,报错如图: 解决方法:将BSTestRunner直接放到项目里,导入的时候,直接加入路径导入,eg: 二、部署时提示开始路径找不到,一堆错如图: 解决方法:将test_case和报告 ...
分类:
编程语言 时间:
2020-04-21 00:12:52
阅读次数:
99
1 void siftdown(int i)//删除一个最小的数并新增一个数 2 {//传入一个需要向下调整的节点编号i, 3 int t,flag = 0; 4 while(i*2 <= n &&flag == 0) 5 { 6 if(h[i] > h[i*2])//判断左子 7 t = i*2; ...
分类:
其他好文 时间:
2020-04-20 18:50:00
阅读次数:
65
在C/C++程序中,经常需要调用其它的程序来先成某项任务,例如其它的C/C++程序、操作系统命令或Shell脚本,C/C++提供了exec函数族和system函数来实现这个功能。一、exec函数族exec函数族提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部
分类:
系统相关 时间:
2020-04-20 16:25:36
阅读次数:
119
golang本身对常用集合的封装还是比较少的,主要有数组(切片)、双向链表、堆等。在工作中可能用到其他常用的集合,于是我自己对常用的集合进行了封装,并对原理做了简单介绍,代码库地址:https://github.com/chentaihan/container,代码都是经过测试的,欢迎下载使用,反馈 ...
分类:
其他好文 时间:
2020-04-20 16:21:53
阅读次数:
60
1 #include <stdio.h> 2 #include <unistd.h> 3 4 int abc() { 5 int d; 6 return 2; 7 } 8 int sum(int a) { 9 int c; 10 abc(); 11 return a; 12 } 13 int mai ...
分类:
其他好文 时间:
2020-04-20 15:49:59
阅读次数:
61
shell实现数组和declare用法 2009 如何让shell返回一个数组变量 总体上来说要利用 IFS这个内部变量, 但处理完应该立即恢复默认的IFS变量 ,不然将带来一堆不可预知的问题。。。 以下是man bash对于IFS的介绍: IFS The Internal Field Separa ...
分类:
编程语言 时间:
2020-04-20 15:36:48
阅读次数:
91
一、线程的概念和多进程相比,多线程是一种比较节省资源的多任务操作方式。启动一个新的进程必须分配给它独立的地址空间,每个进程都有自己的堆栈段和数据段,系统开销比较高,进行数据的传递只能通过进行间通信的方式进行。在同一个进程中,可以运行多个线程,运行于同一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享全局变量和对象,启动一个线程所消耗的资源比启动一个进程所消耗的资源要少。二、线程的使用1、创
分类:
编程语言 时间:
2020-04-20 15:21:52
阅读次数:
81
JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method) 堆区:堆内存用于存放由new创建的对象和数组。 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不 ...
分类:
其他好文 时间:
2020-04-20 13:55:26
阅读次数:
58
插入排序 直接插入排序,折半插入排序,2-路插入排序,希尔排序 快速排序 冒泡排序,快速排序(冒泡排序改进), 选择排序 简单选择排序,树形选择排序,堆排序 归并排序 基数排序 ...
分类:
编程语言 时间:
2020-04-20 13:41:41
阅读次数:
63