基本原理堆排序的基本原理也是选择排序,只是不在使用遍历的方式查找无序区间的最大的数,而是通过堆来选择无序区间的最大的数。大致过程:1.建堆(这里是以建大顶堆为例)先把数组中的数转换成二叉树的形式,在这个基础上建堆。这里用到的大顶堆的性质:所有父节点的值要大于其子节点的值。按照这个性质,将无序的二叉树调整成堆。父节点和子节点计算:如图是一个简易的二叉树,蓝色的数字为节点的序号。计算父节点的序号要根据
分类:
编程语言 时间:
2020-07-01 09:19:44
阅读次数:
46
前提 这篇文章是《SpringBoot2.x入门》专辑的第2篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8。 常规的套路会建议使用Spring官方提供的工具Spring Initializr通过指定配置创建一个SpringBoot项目,但是考虑到Spring ...
分类:
编程语言 时间:
2020-07-01 09:17:43
阅读次数:
62
Java内存泄漏 解释 内存泄漏: 存在一些被分配的对象,满足两个特点: 对象是可达的:在有向图中,存在通路与之相连. 对象是无用的:程序以后不再使用这些对象. 结果:消耗越来越多的内存资源,最终导致OutOfMemoryError。 与C++的区别: C++:对象被分配内存空间,却不可达. Jav ...
分类:
编程语言 时间:
2020-07-01 09:17:15
阅读次数:
66
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.nio.file.File ...
分类:
编程语言 时间:
2020-07-01 09:15:20
阅读次数:
77
Python对Excel的读写主要有:xlrd、xlwt、xlutils、openpyxl、xlsxwriter几种 xlutils结合xlrd: 操作的是以xls后缀的excel,读取文件保留原格式:加:formatting_info=True 常用方法:1、打开xls:open_workbook ...
分类:
编程语言 时间:
2020-07-01 00:30:20
阅读次数:
318
在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。 transferFrom() FileChannel的transferFrom()方法可以将数据从源通道传输到FileCh ...
分类:
编程语言 时间:
2020-07-01 00:29:26
阅读次数:
74
Java并发编程:Callable、Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程 ...
分类:
编程语言 时间:
2020-07-01 00:28:25
阅读次数:
72
基于python3浅谈python3与python2的差异。由于现今主流Python3,但是之前用Python2做的项目,还得维护,所以作为python工作者,不免要了解其中差异,其中,Python2 有 ASCII str() 类型,unicode() 是单独的,不是 byte 类型。而 Pyth ...
分类:
编程语言 时间:
2020-07-01 00:28:10
阅读次数:
81
多线程中的锁 首先讲讲锁的分类 锁的分类 公平锁/非公平锁 可重入锁(递归锁) 独享锁/共享锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁/自适应自旋锁 锁粗化/锁消除 公平锁和非公平锁 线程挂起和线程真正运行之间存在着很长的时间差 公平锁 多个线程按 ...
分类:
编程语言 时间:
2020-07-01 00:26:29
阅读次数:
83
本文将介绍如何在Java程序中使用代码给Excel文档设置内置文档属性和自定义文档属性。
分类:
编程语言 时间:
2020-07-01 00:25:59
阅读次数:
126
栈-先进后出 class Stack(): def __init__(self): self.items = [] def push(self,item): self.items.append(item) def pop(self): return self.items.pop() def peek ...
分类:
编程语言 时间:
2020-07-01 00:22:01
阅读次数:
98
很多时候写windows程序都需要结合多线程,在C#中用如下得代码来创建并启动一个新的线程。 Thread thread = new Thread(new ThreadStart(ThreadProc));//实例化一个线程 thread.IsBackground = true;//将线程改为后台线 ...
分类:
编程语言 时间:
2020-07-01 00:16:11
阅读次数:
69
一. 队列 1.队列定义:只允许在表的一端进行插入,表的另一端进行删除操作的线性表。 2.循环队列:把存储队列的顺序队列在逻辑上视为一个环。 循环队列状态: 初始时:Q.front=Q.rear=0 front指针移动:Q.front=(Q.front+1)%MaxSize rear指针移动:Q.r ...
分类:
编程语言 时间:
2020-07-01 00:11:18
阅读次数:
88
简介:JSP(全称Java Server Pages) 一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、 ...
分类:
编程语言 时间:
2020-07-01 00:10:59
阅读次数:
48
对于python装饰器结合递归的进一步理解 代码如下: import functools def memoize(fn): print('start memoize') known = dict() @functools.wraps(fn) def memoizer(*args): if args ...
分类:
编程语言 时间:
2020-07-01 00:09:24
阅读次数:
72
import unittest def sum_number(a, b): return a + b class MyTestCase(unittest.TestCase): # def test_something(self): # self.assertEqual(True, False) @c ...
分类:
编程语言 时间:
2020-07-01 00:08:35
阅读次数:
105
# ###数据类型:Number(int,float,bool,complex) 1.int 整型 (正整数 0 负整数) intvar = 1111 print(intvar) type 获取值的类型 res = type(intvar)print(res)id 获取一个值的地址res = id( ...
分类:
编程语言 时间:
2020-06-30 23:01:48
阅读次数:
109