排序
文章平均质量分 81
Java-我的世界-begin
程序员的一生时间90%是用在编程上,而剩余的10%是活在世界上。
展开
-
剑指offer—第二章算法之快速排序
算法:排序和查找(二分查找,归并排序,快速排序),位运算等。 查找:顺序查找,哈希查找,二叉排序树查找,哈希表。 二分查找可以解决:"旋转数组中的最小数字","数字在排序数组出现的次数"等问题。 哈希表:优点:O(1)时间内查找一个元素的效率最高。 缺点:需要额外的空间来实现哈希表。 二叉排序树查找:对应二查搜索树查找,可以解决:"二叉收索树的后转载 2016-05-17 21:44:03 · 1001 阅读 · 0 评论 -
归并排序
归并排序 【1】归并排序 归并排序是建立在归并操作上的一种有效的排序算法。该算法也是采用分治法(Divide and Conquer)的一个非常典型的应用。 归并排序的算法复杂度为O(N*logN)。 归并排序算法是稳定的(参见随笔《常用排序算法稳定性分析》)。 【2】归并排序逻辑分析与代码实现 在分析归并排序的逻辑之前,让我们也利用一下分治法理念:先从基层做起(个人之原创 2016-07-05 20:17:59 · 417 阅读 · 0 评论 -
冒泡排序
要点 冒泡排序是一种交换排序。 什么是交换排序呢? 交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。 算法思想 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端原创 2016-07-05 20:52:38 · 555 阅读 · 1 评论 -
数组中的逆序对
题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如,有一个数组为Array[0..n] 其中有元素a[i],a[j].如果 当ia[j],那么我们就称(a[i],a[j])为一个逆序对。在数组{7,5,6,4}中一共存在5对逆序对,分别是(7,6),(7,5),(7,4),(6,4),(5,4)。 参考文献原创 2016-07-16 16:21:48 · 1176 阅读 · 0 评论