
八大排序(java)
MonkeyITBoy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
八大排序之冒泡排序
package com.eight.paixu; import java.util.Arrays; /* 冒泡排序 * 基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。 * 即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 * * 冒泡排序:一趟一趟的比较,比较相邻原创 2018-01-06 01:19:21 · 228 阅读 · 0 评论 -
八大排序之直接插入排序
package com.eight.paixu; /* * 插入排序—直接插入排序(Straight Insertion Sort) * 直接插入排序:每一轮第i个元素跟前面的i-1个元素从后向前比较,一直比较到合适插入的位置 * 属于插入类排序 * 稳定的排序算法 * 平均时间复杂度O(n*n) * 最坏时间复杂度O(n*n) *原创 2018-01-06 01:22:55 · 232 阅读 · 0 评论 -
八大排序之归并排序
package com.eight.paixu; /* * * 归并算法:分而治之的思想 * 属于归并类排序 * 稳定的排序算法 * 平均时间复杂度O(n*log2n) * 最坏时间复杂度O(n*log2n) * 空间复杂度O(n) * n较大时适用 合并排序法(归并排序):合并排序法(MergeSorting)是外原创 2018-01-09 00:45:06 · 249 阅读 · 0 评论 -
八大排序之堆排序
堆排序法(直接选择排序的改进):将排序码k1,k2,k3,...,kn表示成一棵完全二叉树,然后从第n/2个排序码开妈筛选,使由该结点组成的子二叉树符合堆的定义,然后从第n/2-1个排序码重复刚才操作,直到第一个排序码止,这时候,该二叉树符合堆的定义,初始堆已经建立。 接着,可以按如下方法进行堆排序:将堆中第一个结点(二叉树根结点)和最后一个结点的数据进行交换(k1与kn),再将k1...原创 2018-04-16 00:53:04 · 338 阅读 · 0 评论 -
八大排序之选择排序
package com.eight.paixu; /* * 选择排序—简单选择排序(Simple Selection Sort) * * *在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 */ public cl...原创 2018-04-13 00:25:09 · 189 阅读 · 0 评论 -
八大排序之快速排序
package com.eight.paixu; /* * 快速排序:递归算法,将较大的一组换到后面去,较小的一组在前面,前面和后面的分别再递归调用 * 属于交换类排序 * 不稳定的排序算法 :如35512第一轮时前面的5和后面的2换位置,后面的5和1换位置,位置顺序被破坏 * 平均时间复杂度O(n*log2n) * 最坏时间复杂度O(n*n) ...原创 2018-04-13 00:26:55 · 216 阅读 · 0 评论 -
八大排序之希尔排序
package com.eight.paixu; /* * 希尔排序法:希尔排序(ShellSorting)又称为“缩小增量排序”。 * 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。 * 希尔排序:分组交换的思想,先分组,后交换排序 属于交换...原创 2018-04-13 00:27:42 · 287 阅读 · 0 评论