快速排序 发表于 2017-11-02 | 更新于 2019-04-26 | 分类于 算法 基本思想 先从数列中取出一个数作为key值; 将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它的右边; 对左右两个小数列重复第二步,直至各区间只有1个数。 java代码实现public static void quickSort(int a[],int l,int r){ ... 阅读全文 »
Git 发表于 2017-11-01 | 更新于 2019-04-26 | 分类于 工具 集中式与分布式Git 属于分布式版本控制系统,而 SVN 属于集中式。 集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。 集中式版本控制有安全性问题,当中心服务器挂了所有人都没办法工作了。 集中式版本控制需要连网才能工作,如果网速过慢,那么提交一个文件的 ... 阅读全文 »
插入排序 发表于 2017-11-01 | 更新于 2019-04-26 | 分类于 算法 基本思想在要排序的一组数中,假定前n-1个数已经排好序,现在将第n个数插到前面的有序数列中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 平均时间复杂度O(n2) java代码实现public static void insert_sort(int array[],int lent ... 阅读全文 »
选择排序 发表于 2017-11-01 | 更新于 2019-04-26 | 分类于 算法 基本思想在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;第二次遍历n-2个数,找到最小的数值与第二个元素交换;。。。第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。 平均时间复杂度O(n2) java代码实现public static void selec ... 阅读全文 »
单链表 发表于 2017-09-15 | 更新于 2019-04-26 | 分类于 数据结构 概览 本片博客将介绍以下内容 单链表的结构; 单链表中执行遍历,插入和删除操作; 单链表中不同操作的时间复杂度。 单链表的简介 链表是一种线性数据结构,它通过引用字段将所有分离的元素链接在一起。 下面是一个单链表的例子: 蓝色箭头显示单个链接列表中的结点是如何组合在一起的。 单链表的节 ... 阅读全文 »
冒泡排序 发表于 2017-09-13 | 更新于 2019-04-26 | 分类于 算法 基本思想两个数比较大小,较大的数下沉,较小的数冒起来。 过程 比较相邻的两个数据,如果第二个数小,就交换位置。 从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。 继续重复上述过程,依次将第2.3…n-1个最小数排好位置。 平均时间复杂度O(n ... 阅读全文 »
java基础 发表于 2017-09-05 | 更新于 2019-05-12 | 分类于 Java 一、数据类型基本类型 byte/8 char/16 short/16 int/32 float/32 long/64 double/64 boolean/~ boolean 只有两个值:true、false,可以使用 1 bit 来存储,但是具体大小没有明确规定。JVM 会在编译时期将 boole ... 阅读全文 »
复杂度 发表于 2017-09-03 | 更新于 2019-04-26 | 分类于 算法 时间复杂度计算机科学中,算法的时间复杂度是一个函数,它定性描述了该算法的运行时间。 时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。 O(1)<O(logn)<O(n)<O(nlogn)<O(n²)<O(n³)<O(2ⁿ)<O(n!) 空间复杂 ... 阅读全文 »