常用算法
笔记
一啸动千山
这个作者很懒,什么都没留下…
展开
-
排序算法-基数排序
package com.test.sort;import java.util.Arrays;/** * 基数排序基本思想: * 只适合正整数 * 将待排序序列的元素统一位数,位数较短的补0,然后从低位开始的排序。同一位上值相同的放入一个桶中 * 每位放完,依次抽取每个桶中的元素放入原序列。再对下一位置排序 * 循环次数为序列中最大值的长度 */public class RadixSortDemo { public static void main(String[] ar原创 2020-11-24 22:05:40 · 88 阅读 · 0 评论 -
排序算法-桶排序
package com.test.sort;import java.util.Arrays;/** * 桶排序基本思想: * 计算出待排序序列的取值区间,然后将取值区间平均分为N个小取值区间(桶),例[0,5),[5,10),[10,15) * 然后将每个元素分配到每个桶中。再对每个桶的元素进行排序。 * 最后将所有桶中元素移到原序列中 */public class BucketSortDemo { public static void main(String[] args原创 2020-11-24 20:17:58 · 106 阅读 · 0 评论 -
排序算法-计数排序
package com.test.sort;import java.util.Arrays;/** * 计数排序基本思想: * 1、求出待排序序列最大值 * 2、创建长度为最大值+1的计数数组 * 3、遍历原数组,以原数组中元素的值为下标,元素出现次数为值填充计数数组 * 4、遍历计数数组,将次数大于0的下标依次放入原数组中 * 排序完成 * */public class CountSortDemo { public static void main(String原创 2020-11-23 20:15:52 · 102 阅读 · 0 评论 -
排序算法-归并排序
归并排序参考图package com.test.sort;import java.util.Arrays;/** * 归并排序基本思想: * 归并排序分为两个阶段: * 第一阶段分:将待排序序列分为两个序列,再分别对两个序列再次分裂,直至分为一个最小单元,此时不可再分 * 第二阶段治:将上面已经分割好的最小单元序列合并为一个有序序列,依次向上合并 * 最终达到整个序列的排序目的 */public class MergeSortDemo { public st原创 2020-11-22 23:37:35 · 260 阅读 · 0 评论 -
排序算法-快速排序
package com.test.sort;import java.util.Arrays;/** * 快速排序基本思想: * 选定一个元素的值作为中间值,一趟快速排序下来,比它小的放到左边,比它大的放入右边 * 再分别对它左边和右边递归快速排序直至左边和右边的下标相等退出递归 * */public class QuickSortDemo { public static void main(String[] args) { int[] arr=new int原创 2020-11-12 11:36:46 · 144 阅读 · 2 评论 -
排序算法-希尔排序
package com.test.sort;import java.util.Arrays;/** * 希尔排序基本思想: * 步长公式:k=arr.length/2或k=arr.length/3+1 * 将待排序序列按相隔步长的元素分组,组内进行插入排序。所有分组排序完毕,按上面公式缩短步长再分组 * 例:{1,0,9,12,8,4,6,2,3,10}按步长arr.length/2=5逻辑分组得到{1,4},{0,6},{9,2},{12,3},{8,10} * 对各组插入排序得原创 2020-11-11 22:57:22 · 188 阅读 · 1 评论 -
排序算法-插入排序
package com.test.sort;import java.util.Arrays;/** * 插入排序基本思想:{1,2,0} * 将待排序序列逻辑的分为左有序系列和右无序序列,不断从无序序列中取出元素与有序序列中的元素依次比较 * 寻找合适位置插入 * 初始假定有序序列为arr[0],只有一个元素 * */public class InsertSortDemo { public static void main(String[] args) {原创 2020-11-11 22:21:09 · 120 阅读 · 1 评论 -
排序算法-选择排序
package com.test.sort;import java.util.Arrays;/** * 选择排序基本思想: * 第一轮从序列arr[0]~arr[n-1]中选择最小数,放入下标【0】 * 第二轮从剩余的序列中arr[1]~arr[n-1]选择最小数,放入下标【1】 * 依次类推,最后得到从小到大的序列 */public class SelectSortDemo { public static void main(String[] args) { i原创 2020-11-10 22:04:00 · 83 阅读 · 0 评论 -
排序算法-冒泡排序
冒泡排序原创 2020-11-08 23:12:50 · 81 阅读 · 0 评论