排序
文章平均质量分 96
kekeoneone
offeroffer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
八大排序复习
1.堆排实现思路:1.构建堆;2.和最后一个值进行交换;3.修改剩余的堆;4.循环上述操作。代码: // 堆排序额外空间复杂度O(1) public static void heapSort(int[] arr) { if (arr == null || arr.length < 2) { return; } // O(N*logN)// for (int i = 0; i < arr.le原创 2020-12-07 20:55:23 · 187 阅读 · 0 评论 -
堆排序
大顶堆;降序小顶堆;升序排序思路;1.先构建一颗顶堆树,从最后一个非叶子结点开始。(从左至右,从上至下)2.使顶元素和最后一个元素进行交换,并再次替换形成新的顶堆。重复。 public static void heapSort(int []arr){ int temp=0; System.out.println("堆排序:"); //1.将无序序列构建成...原创 2020-03-25 11:00:56 · 111 阅读 · 0 评论 -
基数排序(桶排序)
1。什么是基数排序(radix sort)?基数排序 属于分配式排序(distribution sort),又称“桶排序”(bucket sort),它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。2.它和归并一样,属于稳定型算法。...原创 2020-03-21 20:00:40 · 370 阅读 · 0 评论 -
归并排序
分治: //分+合并 public void mergeSort(int []arr,int left,int right,int[] temp){ if(left<right){ int mid=(left+right)/2; //中间索引 //向左递归 mergeSort(arr...原创 2020-03-21 16:57:52 · 99 阅读 · 0 评论 -
快速排序
快速排序是对冒泡排序的改进。思想:通过一趟排序把要排序的数分为两部分呢,其中一部分的所有数据比另一部分的所有数据都要小。然后按照此方法,对两部分数据分别进行快速排序,整个过程可以递归进行。 public void quickSort(int[] arr,int left,int right) { int l=left; int r=right; ...原创 2020-03-21 15:08:32 · 141 阅读 · 0 评论 -
希尔排序
log(2n)2.分析:简答插入排序时,当插入的数很小时,需要移动很多次,影响效率。比如如图最后的0.注意:**希尔排序也是插入排序。**改进版利用步长2.两种方式:交换法移位法代码://交换法: public void shellSort(int []arr) {int temp=0;for(int gap=arr.length/2;gap>0;g...原创 2020-03-21 11:55:28 · 202 阅读 · 0 评论 -
插入排序
O(n)Date ——getTime(获取毫秒级)直观体验速度package com;import java.lang.reflect.Array;import java.util.Arrays;import java.util.Date;public class choose { public static void main(String[] args) { ...原创 2020-03-21 10:41:44 · 115 阅读 · 0 评论 -
选择排序
O(n2)package com;import java.util.Arrays;public class choose { public static void main(String[] args) { int [] arr={1,2,5,3,7,4}; for(int i=0;i<arr.length-1;i++){ ...原创 2020-03-21 09:46:20 · 111 阅读 · 0 评论 -
冒泡排序
1.冒泡排序:O(n2)package com;import java.util.Arrays;public class Bubble { public static void main(String[] args) { int []arr={1,3,4,2,6}; for(int i=0;i<arr.length;i++){ ...原创 2020-03-20 23:10:27 · 90 阅读 · 0 评论
分享