随笔分类 -  算法

摘要:计数排序 基本思想,找到数组中的最大值val,建立一个val+1大小的数组bucket,遍历原数组,若遍历到x,则将bucket进行加一,以某个元素出现的个数,最后遍历bucket将所有元素倒出来即可。 时间复杂度:O(n) 空间复杂度:O(n) 稳定性:不稳定 适用范围:非负整数,且最大值不能过大 阅读全文
posted @ 2020-10-17 20:46 提笔书几行 阅读(712) 评论(0) 推荐(0)
摘要:归并排序 采用分治的思想,将数组进行等分,将分成的两个数组分别进行排序,merge两个数组 时间复杂度:O(nlogn) 空间复杂度:O(logn) 稳定性:稳定 package Sort; public class MergeSort { public static void swap(int[] 阅读全文
posted @ 2020-10-17 20:43 提笔书几行 阅读(376) 评论(0) 推荐(0)
摘要:选择排序 基本思路:每次选择一个最小的值放在前面 时间复杂度:O(n^2) 空间复杂度:O(1) 稳定性:不稳定 package Sort; public class SelectSort { public static void swap(int[] vec, int i, int j){ int 阅读全文
posted @ 2020-10-17 20:39 提笔书几行 阅读(185) 评论(0) 推荐(0)