![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
啦啦啦啦拉拉☜
这个作者很懒,什么都没留下…
展开
-
java必备知识学习
十大排序算法最佳讲解(带GIF):https://blog.csdn.net/wq_1995/article/details/81937926#6快速排序quick-sort原创 2019-07-07 09:23:58 · 115 阅读 · 0 评论 -
Java实现快速排序(递归+非递归)
快速排序的思想:1.从数列中选取一个元素称为“基准值”(最基本的快速排序选取待排序数组的第一个数字作为基准值)。2.对数列进行排序,将比基准值小的数放在基准前面,比基准值大的数放在基准后面(相同的数可以放在任意一边);也就是将数组分为了两个区间。3.递归地把小于基准的子序列和大于基准的子序列进行排序。快排时间复杂度:O(nlogn)最坏情况:O(n^2)空间复杂度:O(logn)稳定...原创 2019-10-12 16:11:19 · 441 阅读 · 4 评论 -
java简单的冒泡排序
冒泡排序属于交换排序的一种,十分容易理解:原理:从第一个数开始,相邻两数比较,前一个大于后一个数,便交换,最终将最大的数沉底,小的数前移,沉底的大数便成为有序序列,每比较一轮,下一轮就少比较一个。数组长度为 n ,则总共进行n-1趟比较时间复杂度:O(n^2)空间复杂度:O(1)稳定性:稳定public static void bobbleSort(int arr[]){ ...原创 2019-05-22 18:35:01 · 859 阅读 · 0 评论 -
java选择排序
基本思想:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,知道全部待排序的数据元素排完。效率不高,很少用。时间复杂度:O(N^2)空间复杂度:O(1)稳定性:不稳定public static void selectSort(int[] array) { for (int i = 0; i < array.length; i++) {...原创 2019-05-22 18:39:46 · 92 阅读 · 0 评论 -
java希尔排序(直接插入排序的优化)
希尔排序(缩小增量排序):将待排序序列分为 n 个组,从第一个元素开始,每两个距离为 n 的数字为一组,每组两个元素,比较大小,前面大于后面则交换位置;所有待排序列排完后,进入下一趟排序。将上一次排的序列再次进行分组,组数变为原来的一半也就是 n/2 ,(如果第一次分了5组,那第二次就分2组);再次进行1,2步操作,直至组数为1,待排序序列全部有序; //gap=分组数,一趟希尔排序:...原创 2019-05-28 09:37:58 · 139 阅读 · 0 评论 -
java直接插入排序
直接插入排序:从第二个元素开始遍历,拿出此元素,将此元素与前一个元素进行比较,如果比前一个元素小,就插入到前一个元素的位置,然后将其之后的元素依次后移;这样每次插入元素的前面的元素都有序。另种解释:当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],…的...原创 2019-05-23 22:48:52 · 132 阅读 · 0 评论