算法
算法相关的博客
java.util.Man
Was wir wissen, ist ein Tropfen Wasser; was wir nicht wissen, ist ein Ozean
展开
-
排序--快速排序QuickSort(Java实现)
简述快速排序的基本思想是分治,这一点与归并排序一样。实现原理是选择一个元素作为中轴,根据与中轴的关系进行分组(比中轴大的放一起,比中轴小的放一起),分组后的元素在分别进行相同的操作,直到无法再进行分组,最后得到便是有序的数组。分类分类依据:主要由如何选取选择中轴引起的分类常见分类:始终选择数组的第一个元素为中轴始终选择数组的最后一个元素为中轴(代码示例采用的方式)随机选择元素最为中...原创 2020-03-20 16:58:49 · 501 阅读 · 0 评论 -
排序--归并排序MergeSort(Java实现)
原理简述归并排序的基本思想是分治,基本原理就是将原数组分为两部分,然后再将分开的数组在进行合并。图解代码public class MergeSort { /** * 合并 * @param arr 排序数组 * @param start 开始索引 * @param m 中间位置索引 * @param end 结束索引 ...原创 2020-03-19 19:03:50 · 576 阅读 · 0 评论 -
排序--插入排序(Insertion Sort)Java实现
简述插入排序也是比较常用、简单的一种排序方式,同时呢也是我们生活中最常用的一种排序方式:打布克牌抓牌的时候就是使用的插入排序。原理假设我们要排序的数组为[10,6,3,9,8,7,5,4,6]我们从1开始一直遍历到n我们遍历到之前的元素都是有序的那么我们遍历的新元素后,只需要对前边的有序数组进行查找,找到合适的位置将新元素插入即可看例子:代码public static void...原创 2020-03-15 14:07:36 · 214 阅读 · 0 评论 -
排序--冒泡排序BubbleSort(Java)
原理简述冒泡排序是最简单的排序算法之一,主要是通过不断交换相邻元素,实现排序。简单例子对[4,2,6,3,2,1]进行升序排序第一遍(排出最大值)第二遍(排出次大值)第三遍第四遍第五遍每次循环都通过比较相邻的元素,逆序就进行交换,每次都将本次循环内的最大元素交换到最后,通过多次循环,最终变为一个有序的数组。代码实现Javapublic sta...原创 2020-02-29 12:20:42 · 377 阅读 · 0 评论 -
排序--选择排序Selection Sort Java实现
基本原理选择排序的简单原理:选择排序算法通过从未排序部分重复查找最小元素(考虑升序)并将其放在开头来对数组进行排序。将数组两个子数组:已排序子数组未排序子数组选择排序中每次循环都会从未排序子数组中选取最小元素放入已排序子数组小例子排序数组:[2,3,6,2,7,5,1,4]第一次循环:将[2,3,6,2,7,5,1,4]中最小元素,放到开头结果:[1,3,6,2,7,5,2...原创 2020-02-28 12:36:49 · 186 阅读 · 0 评论