现在来写写数据结构,感觉还是有点陌生,应该多练练,有需要的朋友可以看看。
* 冒泡排序
* 插入排序
* 选择排序
* shell排序
* 堆排序
* 归并排序
* 二叉树排序
* 快速排序...
分类:
编程语言 时间:
2014-09-29 19:23:01
阅读次数:
310
排序算法算是比较基本的算法,同时也是最重要的算法,涉及到的知识也比较多,下面记录一下各种排序算法的实现,包括插入排序,选择排序,快速排序,归并排序,冒泡排序等常见的排序算法:...
分类:
其他好文 时间:
2014-09-29 15:37:51
阅读次数:
130
终于到了经典的快排了,作为20世纪科学和工程领域十大算法之一,自60年代发明以来,一直吸引着一批批工程师和科学家对其改进,今天我们就分析快排算法以及它的几种改进方案。快速排序概述:快速排序算法也是基于分治思想的方案,与归并排序不同的是,它是原地排序,同时可以将长度为N的数组排序所需的时间和NlogN...
分类:
其他好文 时间:
2014-09-29 13:14:30
阅读次数:
181
算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 1 //将有序数组a[]...
分类:
其他好文 时间:
2014-09-28 14:31:12
阅读次数:
204
归并排序是建立在归并操作上的一种有效的排序算法。该算法是採用分治法(Divide and Conquer)的一个很典型的应用。首先考虑下怎样将将二个有序数列合并。这个很easy,仅仅要从比較二个数列的第一个数,谁小就先取谁,取了后就在相应数列中删除这个数。然后再进行比較,假设有数列为空,那直接将还有...
分类:
其他好文 时间:
2014-09-28 13:10:22
阅读次数:
180
堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)不论什么一个子节点的键值。2.每一个结点的左子树和右...
分类:
其他好文 时间:
2014-09-28 12:59:02
阅读次数:
165
题目描述:Sort a linked list inO(nlogn) time using constant space complexity.解题方案:题目要求的时间复杂度是O(nlogn),常数级空间复杂度。所以这里用了归并排序,归并排序在数组上操作比较方便,但是这里要排序的是链表。我们用到两个...
分类:
其他好文 时间:
2014-09-27 18:56:10
阅读次数:
231
BrainmanTime Limit: 1000 MS Memory Limit: 30000 KB64-bit integer IO format: %I64d , %I64u Java class name: Main[Submit] [Status] [Discuss]DescriptionB...
分类:
其他好文 时间:
2014-09-26 21:51:58
阅读次数:
320