专栏十二 : 算法/数据结构
掌握了这些基础的数据结构和算法,再学更加复杂的数据结构和算法,就会非常容易、非常快
北九二七
总有乌云遇见皎月,只要坚持就云开见月明。
展开
-
【排序算法】快速排序(Quick Sort)_优化版
看之前建议先看初代快速排序,便于整理思路!!更意懂快排的奥妙!!下面是链接【排序算法 】快速排序(Quick Sort)_萌小崔的博客-CSDN博客优化排序思路从数列中挑出一个元素,称为 "基准"(pivot); 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作; 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列..原创 2021-11-01 15:43:57 · 169 阅读 · 0 评论 -
【排序算法 】快速排序(Quick Sort)
该排序采用的同样是分治思路[分治法(Divide and Conquer)排序思路 在待排序的数列中,我们首先要找一个数字作为基准数(这只是个专用名词)。为了方便,我们一般选择第 1 个数字作为基准数(其实选择第几个并没有关系)。接下来我们需要把这个待排序的数列中小于基准数的元素移动到待排序的数列的左边,把大于基准数的元素移动到待排序的数列的右边。这时,左右两个分区的元素就相对有序了;接着把两个分区的元素分别按照上面两种方法继续对每个分区找出基准数,然...原创 2021-11-01 15:28:55 · 131 阅读 · 0 评论 -
【排序算法】优化版冒泡排序(Bubble Sort)
优化版冒泡排序同普通冒泡排序区别在于优化版加一个旗帜判断已经有序时,不走多余步骤思路比较相邻的元素,如果第一个比第二个大,就交换他们两个 对每一个相邻的元素作同样的工作,从开始第一对到结尾的最后一对 针对所有的元素重复以上的步骤,除了最后一public static int[] BubbleSort(int[] arr,boolean reverse){ //flag 正序true 倒叙false int count = 0; //统计比较次数...原创 2021-10-27 14:29:41 · 163 阅读 · 0 评论 -
【排序算法】归并排序(Java-递归版)
归并排序是采用分治法(Divide and Conquer)的一个非常典型的应用(典型的分而治之思想的算法 )分治模式 三步走 分解:将n个元素分成个含n/2个元素的子序列。 排序:用合并排序法对两个子序列递归的排序。 合并:合并两个已排序的子序列已得到排序结果。 public static int[] MergerSort(int[] arr){ int len = arr.length; //统计排序个数 ...原创 2021-10-27 14:15:50 · 193 阅读 · 0 评论 -
【排序算法】插入排序(Insert Sort)
把待排序的数组分成已排序和未排序两部分,初始的时候把第一个元素认为是已排好序的。 从第二个元素开始,在已排好序的子数组中寻找到该元素合适的位置并插入该位置。 重复上述过程直到最后一个元素被插入有序子数组中。 public static int[] InsertSort(int[] arr,boolean reverse) { //从1开 0默认有序 // 从下标为1的元素开始选择合适的位置插入,因为下标为0的只有一个元素,默认是有序的 ..原创 2021-10-27 14:34:29 · 183 阅读 · 0 评论 -
【排序算法】选择排序(Select Sort)
(适用于规模较小的,不占用额外内存空间)算法步骤不断从未排序序列中找寻最大(最小)元素,存放到已排序的起始位置,直到所有元素均排序完毕 public static int[] SelectSort(int[] arr,boolean reverse){ // 总共要经过 N-1 轮比较 for (int i = 0; i < arr.length-1; i++) { i...原创 2021-10-27 14:32:44 · 147 阅读 · 0 评论 -
【排序算法】希尔排序(shell Sort)
也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法思路先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行依次直接插入排序。public static int[] shellSort(int[] arr,boolean reverse){ // 从下标为1的元素开始选择合适的位置插入,因为下标为0的只有一个元素,默认是有序的 for (i...原创 2021-10-27 14:38:55 · 111 阅读 · 0 评论