SpirytusZ's Blog

快速排序不快了?重复元素下的快速排序

前言快速排序,就像它的名字一样,它做排序很快,空间复杂度O(1)下,它的平均时间复杂度为O(nlog2n)。但是在某些情况下,快速排序不快了,表现出来的性能和冒泡排序排序这类时间复杂度为O(n2)相差无几。因此,本文将解决: 快速排序的工作原理 重复元素下的快排 基本有序下数组下的快排 一、快速排序是如何工作的?个人理解,快速排序的工作原理:每轮任意选定一个支点pivot然后确认其最......

Synchronized的正确食用方法

前言前面的博客《浅谈synchronized的实现原理》谈到synchronized的实现原理,简单而言就是锁住了对象。但是似乎还比较抽象,本篇博客将解决: synchronized锁住的是哪个对象? 如何合理使用synchronized?那么开始吧。 一、synchronized的两种用法synchronized有两种基本用法说起,分别是同步语句块和同步方法。 1.1.同步语句块同......

浅谈synchronized的实现原理

前言Synchronized是Java中的重量级锁,在我刚学Java多线程编程时,我只知道它的实现和monitor有关,但是synchronized和monitor的关系,以及monitor的本质究竟是什么,我并没有尝试理解,而是选择简单的略过。在最近的一段时间,由于实际的需要,我又把这个问题翻出来,Google了很多资料,整个实现的过程总算是弄懂了,为了以防遗忘,便整理成了这篇博客。在本篇......

Hello World!

Hello World!博客终于搭起来啦!搭博客没有别的目的,只为输出倒逼输入,自己给别人讲清楚了,才能对知识的理解更近一步!第一次也不知道该怎么说,就以我第一个编写的程序结尾吧! Best Practice12345#include <stdio.h>void main(){ printf("Hello World!");}...