索引是啥? 索引是数据结构,在数据结构有一章叫查找,在国外的一本书上名字就找索引。 准确的说就是: 加快查找的数据结构。 查找的那一章: 1.有序数组的二分查找 2.二叉查找 ,在此处,为了效率防止退化,引入了平衡的调整。 3.在上述的平衡的定义,为左右高度至多差1,要求太严,调整频露高,于是红黑树...
分类:
其他好文 时间:
2014-06-24 10:24:46
阅读次数:
156
Kruskal算法用于计算一个图的最小生成树。这个算法的步骤如下:
按照边的权重从小到达进行排序
依次将每条边增加到最小生成树中,除非这条边会造成回路
实现思路
第一个步骤需要对边进行排序,排序方法在之前的章节中已经介绍了很多,可以使用优先级队列进行实现,也可以使用归并排序进行实现,这里采用归并排序。
第二个步骤需要判断是否会造...
分类:
其他好文 时间:
2014-06-22 21:43:31
阅读次数:
204
Sort a linked list inO(nlogn) time using constant space complexity.本题利用归并排序即可归并排序的核心是将两部分合成一部分,故开始要将链表分成两部分,利用快慢两个指针,当快指针跑到链表尾部时,慢指针恰好在中间,故可以将链表分成两部分然...
分类:
其他好文 时间:
2014-06-21 12:20:11
阅读次数:
188
归并排序是建立在归并操作上的一种有效的排序算法。该算法是採用分治法(Divide and Conquer)的一个很典型的应用。首先考虑下怎样将将二个有序数列合并。这个很easy,仅仅要从比較二个数列的第一个数,谁小就先取谁,取了后就在相应数列中删除这个数。然后再进行比較,假设有数列为空,那直接将还有...
分类:
其他好文 时间:
2014-06-20 15:28:28
阅读次数:
153
题意:给定一个整数序列 问 只允许相邻的两个数交换 至少需要交换多少次思路:归并排序#include __int64 count;int array[500001],temp[500001]; void merge(int array[],int p,int q,int r) ///// p < ....
分类:
其他好文 时间:
2014-06-18 14:41:06
阅读次数:
197
归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort),但是归并排序是稳定排序, 而.....
分类:
其他好文 时间:
2014-06-17 23:47:38
阅读次数:
299
package com.he.list;
public class Collections {
public static ArrayList mergeList(ArrayList l1, ArrayList l2) {
ArrayList l = new ArrayList();
int l1_length = l1.getLength();
int l2_length = ...
分类:
其他好文 时间:
2014-06-17 22:53:46
阅读次数:
247
题目
Merge k sorted
linked lists and return it as one sorted list. Analyze and describe its complexity.
方法
使用归并排序的思想,两两合并,直到最终变成一个。
public ListNode mergeKLists(ArrayList lists) {...
分类:
其他好文 时间:
2014-06-17 21:34:41
阅读次数:
183
归并排序(merging Sort) 详解 及 代码本文地址: http://blog.csdn.net/caroline_wendy归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort)...
分类:
其他好文 时间:
2014-06-17 16:19:56
阅读次数:
232