
数据结构
三文鹿
专注移动游戏与应用。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于JAVA的排序算法之一--冒泡排序
各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。2. 排序过程: 设想被排序的数组R[1..N]垂直竖立,将每个数据元素看原创 2014-12-25 13:08:28 · 404 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度
排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n2)O(n*log2n)不一顶O(n)插入排序O(n2)原创 2014-12-25 13:09:00 · 515 阅读 · 0 评论 -
基于JAVA的排序算法之九--基数排序
九、基数排序java代码实现: 01. 04.importjava.util.Arrays; 05.public class RadixSort{ 06. 07. 13. publicint digit(long x, long d){ 14. 15. long pow原创 2014-12-25 13:08:49 · 432 阅读 · 0 评论 -
基于JAVA的排序算法之八--桶排序
public class BucketSort {public void sort(int[] keys, int from, int len, int max){int[] temp = new int[len];int[] count = new int[max];for (int i = 0; i {count[keys[from + i]]++;}// calc原创 2014-12-25 13:08:46 · 480 阅读 · 0 评论 -
基于JAVA的排序算法之七--堆排序
public class HeapSort { public static int[] heap = new int[] { 1, 3,7, 5, 2, 8, 4, 6, 10, 9 };public static void main(String[] args){int temp; CreateHeap();for (int i = heap.length -原创 2014-12-25 13:08:44 · 455 阅读 · 0 评论 -
基于JAVA的排序算法之五--快速排序
五、快速排序(Quick Sort)1. 基本思想: 在当前无序区R[1..H]中任取一个数据元素作为比较的"基准"(不妨记为X),用此基准将当前无序区划分为左右两个较小的无序区:R[1..I-1]和R[I+1..H],且左边的无序子区中数据元素均小于等于基准元素,右边的无序子区中数据元素均大于等于基准元素,而基准X则位于最终排序的位置上,即R[1..I-1]≤X.Key≤R[I+1..原创 2014-12-25 13:08:39 · 525 阅读 · 0 评论 -
基于JAVA的排序算法之四--希尔排序
四、希尔排序一、基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成(n除以d1)个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2该方法实质上是一种分组插入方法。二:排序过程:比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。D.L.shell于1959年在以他名字原创 2014-12-25 13:08:36 · 462 阅读 · 0 评论 -
基于JAVA的排序算法之六--归并排序
六、归并排序java代码实现: ** 02.归并排序:里面是一个递归程序,深刻理解之。 03.*/ 04.public classMergeSort{ 05. 06. 13. publicvoid partition(Integer[] arr, int from, int end){ 14.原创 2014-12-25 13:08:41 · 412 阅读 · 0 评论 -
基于JAVA的排序算法之三--插入排序
1. 基本思想: 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。2. 排序过程: 【示例】:[初始关键字] [49] 38 65 97 76 13 27 49 J=2(38) [3849] 65 97 76 13 27 49 J=3(65) [3849 65] 97 76 13 27原创 2014-12-25 13:08:33 · 494 阅读 · 0 评论 -
基于JAVA的排序算法之二--选择排序
二、选择排序1. 基本思想: 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。2. 排序过程:【示例】: 初始关键字[49 38 65 97 76 13 27 49]第一趟排序后13 [38 65 97 76 49 27 49]第二趟排序后13 27 [65 97 76 49 38 49]第三趟原创 2014-12-25 13:08:31 · 434 阅读 · 0 评论 -
基于JAVA的排序算法之十--几种排序…
十、几种排序算法的比较和选择1. 选取排序方法需要考虑的因素:(1) 待排序的元素数目n;(2) 元素本身信息量的大小;(3) 关键字的结构及其分布情况;(4) 语言工具的条件,辅助空间的大小等。2. 小结:(1) 若n较小(n <=50),则可以采用直接插入排序或直接选择排序。由于直接插入排序所需的记录移动操作较直接选择排序多,因而当记录本身信息量较大时,用直接选择原创 2014-12-25 13:08:51 · 595 阅读 · 0 评论 -
B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字原创 2014-12-25 13:09:02 · 392 阅读 · 0 评论