![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java排序算法
alwaysBrother
这个作者很懒,什么都没留下…
展开
-
shell排序java
shell排序javapublic static <AnyType extends Comparable<? super AnyType>> void shellSort(AnyType[] a) { int j; for (int gap = a.length / 2; gap > 0; gap /= 2) { for (int i = g原创 2017-10-17 19:22:03 · 299 阅读 · 0 评论 -
堆排序java
堆排序是利用堆这种数据结构而设计的一种算法,堆排序是一种选择排序, 它的最好、最坏、平均时间复杂度均为O(n log n) 它也是不稳定排序堆进行调整为大顶堆或小顶堆,将顶部元素换到末尾,在重新调整排除末位置的元素构成的新树,重复执行。根据堆的性质,可以直接通过数组索引映射堆中父子节点的关系 需要排序的数组 ->对应堆的层序遍满足以下公式:左孩子 = arr[2i+1]右孩子 = a原创 2017-11-03 19:19:41 · 293 阅读 · 0 评论 -
冒泡排序java
时间复杂度:O(n^2)若原数组本身有序,只需n-1次比较就可完成。若是倒序,比较次数为(n-1)+(n-2)+(n-3)+…1 = n(n-1)/2,交换次数和比较次数等值。public class BubbleSort { public static <AnyType extends Comparable<? super AnyType>> void bubbleSort(AnyTy原创 2017-11-03 19:08:07 · 210 阅读 · 0 评论 -
计数排序java
计数排序是桶排序的一种特殊情况,可以把计数排序当成每个桶里只有一个元素的情况。桶排序的基本思想是:把数组 arr 划分为n个大小相同子区间(桶),每个子区间各自排序,最后合并。当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序, 排序的速度快于任何比较排序算法主流程:1.找出待排序的数组中最大和最小的元素2.统计数组中每个值为i的元素出现的原创 2017-11-03 13:29:44 · 318 阅读 · 0 评论 -
桶排序java
桶排序把数组 arr 划分为n个大小相同子区间(桶),每个子区间各自排序,最后合并计数排序是桶排序的一种特殊情况,可以把计数排序当成每个桶里只有一个元素的情况。思路:1.找出待排序数组中的最大值max、最小值min2.我们使用 动态数组ArrayList 作为桶,桶里放的元素也用 ArrayList 存储。桶的数量为(max-min)/arr.length + 13.遍历数组 arr,计算每个原创 2017-11-03 11:21:52 · 192 阅读 · 0 评论 -
快速排序java
快速拍戏在java基本类型的排序中特别有用, C++中特别有用快速排序也是一种分治的递归算法,平均运行时间O(N log N)算法: 数组S排序如果S中元素个数是 0 或者 1 ,直接返回取S中任一个元素v ,称之为枢纽元。将 S - {v}(S中其余元素) 划分成两个不想交的集合S1 和 S2:S1 = S中小于v的, S2 = S中大于V的返回quickSort(S1) ,后跟枢纽v原创 2017-11-03 11:14:14 · 201 阅读 · 0 评论 -
归并排序java
归并排序采用分治思想,递归的缩小规模来进行排序。先分后合,分治减少了比较次数,而合并仅仅只是移动元素。在java中,进行一次元素比较可能是昂贵的,但是移动元素则是省时的(仅仅是引用的赋值,而不是对象的拷贝)归并排序,运行时间是O (N log N) 事实上,它就是标准类库中泛型排序使用的算法 (C++中主要用的是快速排序)归并排序使用所有排序算法中最少的比较次数java实现:public原创 2017-11-03 11:05:39 · 188 阅读 · 0 评论 -
基数排序java
参考: http://blog.csdn.net/lemon_tree12138/article/details/51695211 http://www.cnblogs.com/Braveliu/archive/2013/01/21/2870201.html基数排序是一种分配–收集式的排序。通过下面的实例来看下整个过程:初始的待排序数组如下所示:73 22 93 43 55 14 2原创 2017-11-03 10:56:22 · 141 阅读 · 0 评论 -
java插入排序
public static <AnyType extends Comparable<? super AnyType>> void insertionSort(AnyType[] e) { int j; for (int i = 1; i < e.length; i++) { AnyType tmp = e[i]; fo原创 2017-10-12 16:57:48 · 236 阅读 · 0 评论 -
选择排序java
从第一元素开始,每次找出最小元素的下标,和待排序列最开头的元素交换位置,依次类推时间复杂度 O( n^2 )空间复杂度 1 :临时保存最小值java代码:public static <T extends Comparable<? super T>> void selectSort(T[] a) { for (int i=0; i<a.length-1; i++) {原创 2017-11-03 19:24:49 · 159 阅读 · 0 评论