数据结构
nowseeme
这个作者很懒,什么都没留下…
展开
-
java排序(2):插入类排序
一.直接插入排序(Straight Insertion Sort)1.基本思想插入排序的基本操作就是将一个数据插入到已经排好序的有序数组中,从而得到一个新的、个数加一的有序数组。比较和交换的时间复杂度为O(n^2),算法自适应,对于数据已基本有序的情况,时间复杂度为O(n),算法稳定,开销很低。算法适合于数据已基本有序或者数据量小的情况。2.思路先将序列的第1个记录看成是一个有序的子序列,然后从第2原创 2017-02-27 00:41:20 · 367 阅读 · 0 评论 -
java排序(3):交换类排序
一.冒泡排序1.基本思想 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。2.思路核心:两两比较(交换) (1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。原创 2017-02-27 18:16:41 · 434 阅读 · 0 评论 -
java排序(4):选择类排序
一.选择排序1.基本思想设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。(选择待排数列最小的数排在待排数列首位)2.思路(1)从待排序序列中,找到关键字最小的元素; (2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换; (3)从余下的 N - 1原创 2017-02-27 18:16:50 · 596 阅读 · 0 评论 -
java排序(6):总结
todo原创 2017-02-27 18:17:53 · 280 阅读 · 0 评论 -
折半查找(二分查找)
1. 算法思想折半查找又叫二分查找,要求待查找的有序序列(比如数组)。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了返回为止,否则序列中没有待查的关键字。 2. 代码实现/** * 详述: 二分查找法--非递归直接查找 * 前提条件: 数组为升序数组 * @p原创 2017-01-30 19:58:58 · 615 阅读 · 0 评论 -
java排序(5):归并排序和基数排序
一.归并排序1.基本思想 归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 归并排序就是利用归并的思想实现的排序方法,效率比较高。其基本原理如下:对于给定的一组记录,利用递归与分治技术将数据序列划分成为越来越小的半子表,在对半子表排序,最后再用递归方法将排好序的半子表合并成为越原创 2017-02-27 18:17:25 · 447 阅读 · 0 评论 -
java排序(1):基本概念和各种排序的概述
1.内部排序与外部排序按照排序过程设计的存储器的不同分为内部排序与外部排序。内部排序完全在内存中进行,适合数据量不太大的数据元素的排序。外部排序需要访问外部存储器,待排序的数据元素非常多,以至于它们必须存储在外部存储器上。 外部排序的过程主要是依据数据的内外存交转载 2017-02-26 23:20:59 · 361 阅读 · 0 评论