堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)不论什么一个子节点的键值。2.每一个结点的左子树和右...
分类:
其他好文 时间:
2014-07-16 19:26:44
阅读次数:
192
1. 走着走着,就散了,回忆就淡了; 看着看着,就累了,星光也暗了; 听着听着,就醒了,开始埋怨了; 回头发现,你不见了,突然我乱了。2. 我的世界太过安静,静的可以听见自己心跳的声音。 心房的血液慢慢流进心室,如此这般轮回。 聪明的人,喜欢猜心,也许猜对了别人的心,却失去了自己的。 傻气的人,喜欢...
分类:
其他好文 时间:
2014-07-16 19:26:29
阅读次数:
149
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步相互排斥量Mutex》前面介绍了关键段CS、事件Event、相互排斥量Mutex在经典线程同步问题中的使用...
分类:
编程语言 时间:
2014-07-15 08:39:59
阅读次数:
276
指令集是CPU体系架构的重要组成部分。CPU的指令执行一般包括取指、译码和执行,这是经典的三级指令执行流水线。本文阐述CPU流水线设计的由来和改进技术以及软件开发人员对于流水线需要注意的问题。...
分类:
其他好文 时间:
2014-07-14 13:36:50
阅读次数:
226
鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。经常在网络上看到有的XDJM问“多进程好还是多线程好?”、...
分类:
编程语言 时间:
2014-07-14 10:56:00
阅读次数:
376
N皇后问题,经典中的经典。 第一遍的时候,只有点思路,但是想不清楚,看了别人的代码。 方法一(Java): public class Solution { int[] row; int[] col; ArrayList res; int N; public vo...
分类:
其他好文 时间:
2014-07-13 22:21:25
阅读次数:
233
整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都将涉及。所谓整数划分,是指把一个正整数n写成如下形式: n=m1+m2+...+mi; (其中mi为正整数,并且1 0),只有一种划分即{1}; (2) 当m=1时,不论n的值为多少,只有一种划分即n个1,{1,1,1,....
分类:
其他好文 时间:
2014-07-13 21:27:45
阅读次数:
222
一、“经典模型”的失效
我们学过C++的人都知道,在C++中组织代码的经典模型是:将函数或类的声明和定义部分分开在不同的文件之中 ,
即一般将声明放在一个.h的头文件中而定义在放在一个.cpp文件之中,当然这的确是写代码的一种很优良的风格,但问题
是如果将这种“经典模型”应用到模版上时就会发生连接上错误。
例如:
文件“A.h”
#include"iostream"
using...
分类:
编程语言 时间:
2014-07-13 18:22:09
阅读次数:
275