![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基数排序
h散落一夜空城
这个作者很懒,什么都没留下…
展开
-
Java实现桶排序
桶排序:将待排序的数组分配到n个桶中,然后对每个桶中元素进行排序,然后在整合package sort;import java.util.*;public class BucketSort { /** * 桶排序 * @param args */ public static void main(String[] args) { int a [] = {-6,4,1,6,3,-7,5,67,800,1,1000,5};原创 2021-03-27 16:17:01 · 136 阅读 · 0 评论 -
Java实现计数排序
计数排序:时间复杂度在O(n),但是如果待排序的数组中最大值或者最小值数字过大,计数排序就不适用,数字过大极其浪费数组空间package sort;import java.util.Arrays;public class Counting_sort { /*计数排序*/ /*思路:扫描待排序数组,找出数组中最大的元素,开辟一个长度为待排序数组中最大值的辅助数组 * 扫描待排序数组,将待排序数组中的值记为辅助数组的下标 * * 时间复杂度在n+k,但是原创 2021-03-26 17:15:22 · 95 阅读 · 0 评论 -
Java实现堆排序
堆排序:首先要满足:是一颗近似完全二叉树大顶堆是父节点的值不小于子节点小顶堆是父节点的值不大于子节点大顶堆代码示例:package sort;import java.util.Arrays;public class HeapSort { /** * 大顶堆 * @param args */ public static void main(String[] args) { int a [] = {4,1,6,3,5,6原创 2021-03-26 16:06:42 · 84 阅读 · 0 评论 -
归并排序
归并排序:采用分治的思想,将待排序的元素划分成n组,对每组进行合并,合并的过程是以中间元素分为左右数组,逐一选取最小的填充到辅助空间,完成合并代码示例:package sort;import java.util.Arrays;public class MergeSort { /*归并排序*/ static int a [] = {4,1,6,3,5,67,6788,1,8788,5}; public static void main(String[] args原创 2021-03-24 21:23:56 · 85 阅读 · 0 评论 -
快速排序以及优化
快排思想:先定一个主元,小于主元的都在主元左侧,大于主元的在主元右侧,排序好后主元左侧在进行同意的划分,右侧也进行同样的划分,采用分治思想代码示例:package sort;public class QuickSort { public static void main(String[] args) { int a [] = {4,1,6,3,5,67,6788,1,8788,5}; quickSort(a,0,a.length-1);原创 2021-03-24 19:46:50 · 83 阅读 · 0 评论 -
希尔排序以及优化
希尔排序:采用增量的思想,将一个数组按照增量分成许多组,然后组内按照插入排序的思想进行分组,增量每次折半.package sort;public class Shell_sort { public static void main(String[] args) { int b[] = new int[1001]; for (int i = 0; i < 1000; i++) { b[i] = (int)(Math.ran原创 2021-03-19 23:22:45 · 203 阅读 · 0 评论 -
选择排序优化
未优化前package sort;/*选择排序*/public class Selection_sort_1 { public static void main(String[] args) { int a [] = {4,1,6,3,5,67,6788,1,8788,5}; Long s = System.currentTimeMillis(); selection_sort(a); Long e = System.原创 2021-03-19 00:54:26 · 78 阅读 · 0 评论 -
冒泡排序
冒泡排序的逐步优化版本1:package sort;/*冒泡排序*/public class Bubble_sort { public static void main(String[] args) { int a [] = {4,1,6,3,5,67,6788,1,8788,5}; bubble_sort(a); } private static void bubble_sort(int[] a) { for原创 2021-03-18 23:03:12 · 48 阅读 · 0 评论 -
二分查找
非递归解法:代码示例:package sort;public class BinarySearch { public static void main(String[] args) { int a[] = {1,2,3,4,5,6,7}; int t = 10; int low = 0; int height = a.length-1; int re = binarysearch(a,t,low,原创 2021-03-18 01:16:51 · 86 阅读 · 0 评论 -
递归实现插入排序
题目描述:使用递归进行插入排序思路:将数组分为前k-1个与要排序的第k个数即可package sort;public class Insertion_sort_Re { public static void main(String[] args) { int a [] = {4,1,6,3,5,67,6788,1,8788,5}; int k =a.length; insertion_sort(a, k - 1,k); }原创 2021-03-17 22:27:29 · 282 阅读 · 0 评论 -
插入排序
题目描述:给出一个乱序的数组,将其从小到大排序思路:数组第一个数字默认有序,从第二个数字开始考虑,逆序进行比较如果前面一个数字比当前数字大,则进行交换重复此步骤直到当前下标为0结束代码示例:package sort;public class Insertion_sort { public static void main(String[] args) { int a [] = {4,1,6,3,5,67,6788,1,8788,5}; in原创 2021-03-17 00:44:12 · 93 阅读 · 0 评论 -
基数排序
基数排序:将待排序的数字按照从尾部开始数第一位,第二位,将其对应的位上面的数字放入0-9号桶里面,例如20,21,40,30,44第一轮将20放入0号桶,21放入1号桶,40放入0号桶,30放入0号桶,44放入4号桶然后按照桶中排放的顺序放回原数组,在进行下一轮重复的排放操作有几位数就进行几轮操作代码示例:package sort;import java.util.ArrayList;import java.util.Arrays;public class CardinalSor原创 2021-03-28 00:54:58 · 84 阅读 · 0 评论