排序算法
tyrlee87
这个作者很懒,什么都没留下…
展开
-
基数排序算法
package sort;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 基数排序 * */public class Radix10 { public static void main(String[] args) { int[] arr1 = {44,38,5,47,15,31原创 2021-06-24 16:37:09 · 86 阅读 · 0 评论 -
计数排序算法
package sort;import java.util.Arrays;/** * 计数排序 * */public class Counting9 { public static void main(String[] args){ int[] array={95,94,91,98,99,90,99,93,91,92}; int[] sortedArray=countSort(array); System.out.println(Arrays原创 2021-06-24 16:35:58 · 66 阅读 · 0 评论 -
桶排序算法
package sort;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;/** * 桶排序 * */public class Bucket8 { public static void main(String[] args) { int[] arr1 = {44,38,5,47,15,31,32,88,2,23,43,54,1,7,56,100,101,102}; i原创 2021-06-24 16:35:03 · 77 阅读 · 0 评论 -
快速排序算法
package sort;import java.util.Arrays;/** * 快速排序 * */public class Quick7 { public static void main(String[] args) { int[] arr1 = {44,38,5,47,15,31,32,88,2,23,43,54,1,7,56,100,101,102}; quickSort(arr1); System.out.println(Arrays.toString(ar.原创 2021-06-24 16:32:49 · 67 阅读 · 0 评论 -
归并排序
1.思路:将数组递归二分,从最底层开始比较交换并向上层合并,合并后的数组就是有序数组2.图片演示3.代码演示:package sort;import java.util.Arrays;/** * 归并排序 * 将数组递归二分,从最底层开始比较交换并向上层合并,合并后的数组就是有序数组 */public class Merge6 { public static void main(String[] args) {// int[] arr1 = {44,38,5,47,15,31原创 2020-07-27 17:04:52 · 71 阅读 · 0 评论 -
堆排序
1.思路:首先将待排序数组构建成一个二叉堆,其次每一轮比较都将最大值上浮到堆顶,然后将最大值与本轮参与比较的最后一个数值交换位置,这样从后向前依次循环递归比较交换,最后就可得到一个按顺序从小到大排列的数组。2.图片演示:3.代码演示:package sort;import java.util.Arrays;/** * 堆排序 * 使用二叉堆的性质,将最大值放在数组的最后 */public class Heap5 { public static void main(String原创 2020-07-27 16:06:49 · 84 阅读 · 0 评论 -
希尔排序
1.思路:打破只能相邻元素比较的局限,以可变间距比较两个元素的大小,可变间距以数组长度的二分之一开始,直至变为1结束。通过多轮不同间距的比较之后,数组变得有序。2.图片演示:3.代码示例:package sort;import java.util.Arrays;/** * 希尔排序 * */public class Shell { public static void main(String[] args) { int[] arr1 = {44,38,5,47,15,31,3原创 2020-07-14 14:15:36 · 61 阅读 · 0 评论 -
插入排序
1.思路:n个数排序,依次取出第二到第n个数作为待插入数,向前比较,如果比前面数字大,将前面数字后移,直至将待插入数字插入到合适的位置。2.图片示例:3.代码示例:package sort;import java.util.Arrays;/** * 插入排序 */public class Insertion { public static void main(String[] args) { int[] arr1 = {44,38,5,47,15,31,32,88,2,23,4原创 2020-07-10 16:35:11 · 86 阅读 · 0 评论 -
选择排序
1.思路:n个数进行选择排序,第一趟排序,将第一个数设置为最小值,并逐个向右比较,如果有更小的数字,将该数字设置为最小值,并将该数字与第一个数字交换位置;第二趟排序将第二个数设置为最小值,并逐个向右比较,选择出最小值并与第二个数交换;以此类推,第n-1趟,第n-1个数与第n个数比较交换,排序结束。2.图片演示:3.代码示例:package sort;import java.util.Arrays;/** * 选择排序 */public class Selection { publi原创 2020-07-10 15:47:25 · 112 阅读 · 0 评论 -
冒泡排序
1.思路:有n个数,第一趟从第一个数开始,依次与右边的数比较,如果比右边的数大则交换,这样第一趟比较和交换过后大的数会在最右边;再从第一个数开始向右比较交换得到第二大的数;以此类推,经过n-1趟比较交换,可得到有序数列。代码中还展示了两种经过优化的冒泡排序,优化一的思路是某一趟排序没有发生过交换,说明数列已经有序,不需要再进行后续的比较和交换;优化二的思路是跳跃式的修改每次比较交换的边界,从而减少了循环和比较的次数。2.图片演示:3.代码示例:package sort;import java原创 2020-07-10 15:19:36 · 185 阅读 · 0 评论