设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为主元,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序.值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动. 1)设置两个变量i.j,排序开始的时候:i=0,j=N-1: 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]: 3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的…
1.Ctrl+s:快速保存代码 一定要记得随时随地用Ctrl+s来保存我们的代码哦!!!不然等到电脑关机或者是使用的Eclipse突然闪退就欲哭无泪了.此时脑海里就突然出现了哔哔哔的画面~ 2.Alt+/:自动补全代码或者提示代码后半部分 墙裂推荐大家使用啊,真的是超级好用了. 给大家举一个例子,当我们输入:System.out.println();时 不知道这个快捷键的小伙伴可能正在一个字母一个字母的输入,还担心自己哪个单词拼错. 当你使用了Alt+/只需要打上syso再加上Alt+/快捷键.…
经常听到 Java 性能不如 C/C++ 的言论,也经常听说 Java 程序需要预热,那么其中主要原因是啥呢? 面试的时候谈到 JVM,也有很多面试官喜欢问,为啥 Java 程序越执行越快呢? 一般人都能回答上来,类加载,缓存预热等等,但是深入下去,最重要的却没有答上来,今天本系列文章就来帮助大家理解这个问题的关键.本篇文章是 TLAB 预热. TLAB(Thread Local Allocation Buffer)线程本地分配缓存区,这是一个线程专用的内存分配区域. 既然是一个内存分配区域,我…
/* 非递归栈实现快排 */ #include <stdio.h> #include <math.h>> #include <malloc.h> #include <windows.h> typedef struct _Stack { int *data; int top; }Stack; /* 一次快排的结果,返回基准的位置 */ int OneQuickSort(int *arr, int i, int j) { //②if(j - i <…
今天看剑指offer突然发现下学期都要去面试了,还没自己实现过快排非递归和归并非递归,这怎么能行呢,于是就写了一下. (虽然有点卡壳,又回去翻了下算导,还是顺利写出来了) 先放图: 一亿数据量: #pragma warning(disable:4996) #include <iostream> #include <string> #include <cctype> #include<vector> #include<list> #include&…
OpenGL快问快答 本文内容主要来自对(http://www.opengl.org/wiki/FAQ)的翻译,随机加入了本人的观点.与原文相比,章节未必完整,含义未必雷同,顺序未必一致.仅供参考. +BIT祝威+悄悄在此留下版了个权的信息说: 名词术语 渲染:等于"画",等于"draw". OpenGL是什么? OpenGL是Open Graphics Library(开源图形库)的缩写.它是一本说明书,是一个PDF文件.它写的是渲染三维图形所使用的API(App…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>HTML5-Video-Player</title> <style type="text/css"> .videoPlayer{ border: 1px solid #000; width: 600px; } #video{…
快读&快写模板 快读快写,顾名思义,就是提升输入和输出的速度.在这里简单介绍一下几种输入输出的优劣. C++ cin/cout 输入输出:优点是读入的时候不用管数据类型,也就是说不用背scanf/printf的%d.%c.%lld等繁琐的东西,但是缺点就是比scanf/printf慢一些. C scanf/printf 输入输出:与C++对比,比cin/cout快一些,但使用方法细节比较多,容易出锅. 快读/快写:只能处理整数读入/输出,但是要比标准输入输出函数都快得多. 一般来讲,快读快写在针…
题目简述: 对于给定的一段正整数序列,逆序对就是序列中 a_i>a_jai​>aj​ 且 i<ji<j 的有序对. 输出序列中逆序对的数目. 知识补充: 树状数组: 这东西就是就是用数组来模拟树形结构,在解决区间上的更新以及求和问题时速度为O(logn),速度比普通数组要快很多) 很重要的一点,那就是:在写代码的时候,把树状数组当成一个普通数组来思考,千万不要将树状数组计算的过程带入思考过程,不然搅死你. 1.单点修改&区间查询 单点增加(初始化):题目:https://w…
题目链接: Problem  2198  快来快来数一数 题目描述: 给出n个六边形排成一排,a[i]代表i个六边形能组成的生成树个数,设定s[i]等于a[1]+a[2]+a[3]+....+a[i-1]+a[i],问s[n]为多少? 解题思路: n取值范围[1, 1018],打表内存不够,然后就要考虑快速幂咯!纳尼!!!!快速幂写出来竟然超时,敢信?果然还是见题太少了.(GG) 对于a[n] = 6*a[n-1] - a[n-2],可以很明显看出. 然后求和的时候就要化简一番了,但是并不是很难…