![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
排序
排序
芝諾de乌龟
这个作者很懒,什么都没留下…
展开
-
排序算法 - 插入排序
思路 对数组进行遍历,从索引为1开始,从后往前遍历,如果当前索引处的值小于(或大于)上一个索引处的值则交换位置,那么索引1及其前面的值就都是有序的了,然后进行下一次遍历 因为索引1前面的值已经都是有序的了,所以只需要找到索引2处的值在前面有序数组中的位置即可 以此类推,直到所有元素均排序完毕 Code public class InsertionSort { public void sort(int[] arr) { if (ArrayUtils.isEmpty(arr) ||原创 2021-08-22 22:44:05 · 55 阅读 · 0 评论 -
排序算法 - 选择排序
思路 对数组进行遍历,从索引为1开始,比较当前索引和0索引处的值大小,如果比0索引处位置小(或大)则交换位置,那么第一个就是最小的(或最大的),然后再进行下一次遍历 因为第一次遍历已经把最小的(或最大的)放到了第一个,所以第二次遍历从索引为2开始,和1索引处的值进行比较 以此类推,直到所有元素均排序完毕 Code public class SelectionSort { public void sort(int[] arr) { if (ArrayUtils.isEmpty(ar原创 2021-08-22 22:43:12 · 55 阅读 · 0 评论 -
排序算法 - 快速排序
思路 从数组中选取一个基准值,然后把比基准值小的都放在其左边,比基准值大的都放在右边,如果相同放任意一边都可 根据基准值就可以把一个数组拆分成两个数组,然后再对这两个数组再进行上述操作 最后就可以得到有序数组了 Code public class QuickSort { public void sort(int[] arr) { sort(arr, 0, arr.length - 1); } private void sort(int[] arr, int st原创 2021-07-29 23:26:04 · 126 阅读 · 1 评论 -
排序算法 - 冒泡排序
思路 对数组进行遍历,分别比较当前索引和下一个索引出的值大小,把大的(或小的)放到后面,那么最后一个就是最大的(或最小的),然后再进行下一次遍历 因为第一次遍历已经把最大的放到了最后一个,所以第二次不需要对最后一个索引处的数进行比较,以此类推 假设数组长度为n,那么其实对当前数组进行上述遍历n-1次就可以得到有序的数组了 示例 待排序数组:[3, 2, 1] 第一次结果:[2, 1, 3 ] 第二次结果:[1, 2, 3 ] Code public class BubbleSort { publ原创 2021-07-29 22:42:34 · 87 阅读 · 0 评论