排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序) 快速排序的伪代码: / /使用快速排序方法对a[ 0 :n- 1 ]排序 从a[ 0 :n- 1 ]中选择一个元素作为m i d d l e,该 ...
分类:
编程语言 时间:
2017-09-23 20:13:09
阅读次数:
864
快速排序也是一种分治的排序算法。快速排序和归并排序是互补的:归并排序将数组分成两个子数组分别排序,并将有序的子数组归并以将整个数组排序,会需要一个额外的数组;而快速排序的排序方式是当两个子数组都有序时,整个数组就自然有序了,快速排序可以不产生额外的数组。 对于小数组(N<=20),快速排序不如插入排 ...
分类:
编程语言 时间:
2017-09-23 14:35:17
阅读次数:
272
/** * Project Name:Algorithm * File Name:SingleListMergeSort.java * Package Name: * Date:2017年9月22日上午10:08:46 * Copyright (c) 2017, 2692613726@qq.com ... ...
分类:
编程语言 时间:
2017-09-22 23:56:19
阅读次数:
299
最近在找工作,到处跑,做了很多笔试,这里总结这些天常考的题,一是记录心得,二是分享知识--Rome was not built in a day 1 char *const p; char const *p; const char *p; 这三者有什么区别? char *const p: 指针常量, ...
分类:
其他好文 时间:
2017-09-22 22:25:57
阅读次数:
120
/** * Project Name:Algorithm * File Name:MergeSort.java * Package Name: * Date:2017年9月22日上午8:53:15 * Copyright (c) 2017, chenzhou1025@126.com All Righ... ...
分类:
编程语言 时间:
2017-09-22 12:04:58
阅读次数:
180
一.排序算法分类 1.插入排序法 直接插入排序,希尔排序(面试最常问) 2.交换排序 冒泡排序,快速排序(面试最常问) 3.选择排序 直接选择排序,堆排序(面试最常问) 4.归并排序 归并排序 5.基数排序 以上算是最常用的一些算法。 二.空间、时间复杂度、稳定性 三.性能分析 1.O(n^2)性能 ...
分类:
编程语言 时间:
2017-09-21 21:17:16
阅读次数:
226
归并排序是采用分治法的典型应用。 参考《数据结构与算法分析-Java语言描述》 归并排序其实要做两件事: (1)“分解”——将序列每次折半划分。 (2)“合并”——合并两个已排序的表。 合并:对于两个输入数组A和B,一个输出数组C,以及3个计数器Actr、Bctr、Cctr,他们的初始置于对应数组的 ...
分类:
编程语言 时间:
2017-09-21 21:14:34
阅读次数:
163
我们在使用给标签添加diaplay:inline-block属性后,标签并排显示后之间会产生3px的间距空白问题。 间距是如何产生的? 1.我们在使用内联元素的标签时候,例如img标签没有设置display属性同样会产生间距,这是因为我们在书写标签的时候为了代码的简洁直观会换行,但是浏览器在解析的时 ...
分类:
其他好文 时间:
2017-09-21 17:56:05
阅读次数:
372
来源:https://leetcode.com/problems/sort-list Sort a linked list in O(n log n) time using constant space complexity. 归并排序(Merge Sort,台湾译作:合并排序)是建立在归并操作上的 ...
分类:
其他好文 时间:
2017-09-20 23:09:34
阅读次数:
139
参考博客:基于python的七种经典排序算法 常用排序算法总结(一) 序前传 - 树与二叉树 树是一种很常见的非线性的数据结构,称为树形结构,简称树。所谓数据结构就是一组数据的集合连同它们的储存关系和对它们的操作方法。树形结构就像自然界的一颗树的构造一样,有一个根和若干个树枝和树叶。根或主干是第一层 ...
分类:
编程语言 时间:
2017-09-20 16:21:12
阅读次数:
176