算法
文章平均质量分 53
lucasmaluping
这个作者很懒,什么都没留下…
展开
-
选择排序_java
一、排序思想选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:从待排序列中选出最小(或最大)的一个元素,记录其下标(数组)的位置; 将记录的下标值与待排序列的第一个元素进行交换; 以此类推,直到全部待排序列的元素排完。二、图解三、代码实现public class SelectionSort { public static void main(String[] args) { int[] arr = {43, 21.原创 2022-02-21 11:46:33 · 230 阅读 · 0 评论 -
归并排序_java
基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。分而治之 可以看到这种结构很像一棵完全二叉树,本文的归并排序我们采用递归去实现(也可采用迭代的方式去实现)。分阶段可以理解为就是递归拆分子序列的过程,递归深度为log2n。合并相邻有序子序列 再来看看.原创 2021-06-28 10:12:48 · 91 阅读 · 0 评论 -
冒泡排序_java
比较相邻的元素,如果前一个比后一个大,交换之。 第一趟排序第1个和第2个一对,比较与交换,随后第2个和第3个一对比较交换,这样直到倒数第2个和最后1个,将最大的数移动到最后一位。 第二趟将第二大的数移动至倒数第二位 ...... 因此需要n-1趟; 动图 import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Collections;i...原创 2021-06-23 16:09:42 · 91 阅读 · 0 评论 -
快速排序_java
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列:3 1 2 5 4 6 9 7 10 8...原创 2021-06-23 15:50:16 · 88 阅读 · 0 评论