算法
Cqw150
这个作者很懒,什么都没留下…
展开
-
排序算法之插入排序
思路分析:插入排序的核心就是通过数的对比,移动。实现排序。详细思路:每次排序时,将数据分为2组:1组为有序列,一组为无序列。每次排序 ,从无序列中取出一个数为T,对比有序列中的值(后往前对比),若无T小于有序列中的第一个值A,则吧A向后移动一个位置。继续对比。对比完成后,序列下标停留的位置值替换为T.图解:详细代码:package rank;public class InsertRank {/...原创 2018-03-18 18:36:32 · 259 阅读 · 0 评论 -
排序算法之快速排序
快排过程:定义一个基数,将小于基数的值放于左边,大于基数的值放于右边。详细代码:package rank;import java.util.ArrayList;public class Speed {// 快速排序 public static void main(String[] args) { ArrayList<Integer> integerList = new A...原创 2018-03-18 18:57:41 · 180 阅读 · 0 评论 -
排序算法之选择排序
思路:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕 例: 3,2,7,4,1,5 第一次后 :1,2,7,4,3,5第二次后:1,2,7,4,3,5第三次后:1,2,3,4,7,5第四次后:1,2,3,4,5,7详细代码:package rank;public class ChooseRank {// 选择排序 public sta...原创 2018-03-18 22:18:24 · 128 阅读 · 0 评论 -
排序算法之希尔排序
思路:希尔排序是插入排序的进阶版,插入排序是吧每一个待插入数跟有序数列值进行比较,希尔排序先是吧数进行分组,先在组内排序.最后合成在进行一次排序。详细代码:package rank;public class HillRank { // 希尔排序 进阶的插入排序 public static void main(String[] args) { int[] array = { 4, 2, 5...原创 2018-03-19 19:46:12 · 212 阅读 · 0 评论 -
排序算法之归并排序
思路:归并排序是把一个无序的数组,分割成若干个小块,没快排序,整合,在排序,最后合成完成数组的过程。过程分为1.分割2.整合图解:图片来自https://www.cnblogs.com/chengxiao/p/6194356.html2个数组合成情况如下图所示:这里要把内容移动一个新的数组中,排序完成后再copy到原数组。每次左右比较吧小的数放到新的数组中。详细代码:package rank;...原创 2018-03-19 22:09:48 · 183 阅读 · 0 评论 -
排序算法之堆排序
思路:堆排序用到了二叉树的概念,本文用到了 大根推(上面的数最大,下面2个数小),把数组用二叉树 的形式组合。通过排序,把大的数放到顶部。一次排序后,最大的值放到第一位,将最后一个数跟最大值调换。再次进行排序(不包括最后一个最大值)。循环操作。代码:package rank;public class PileRank { // 堆排序 public static void main...原创 2018-03-19 22:32:04 · 260 阅读 · 0 评论 -
排序算法之基数排序
思路:基数排序是一种不用通过数的比较的一种排序方法。将要排序的元素分配至某些“桶”中。先定义一个数组T有10个 分别代表0-9的数字的桶 ,假定现在数组A内容为 7,4,2,2,1,5,8(暂用个位数便于理解),6, 吧数组内容对应到桶中的0-9() ,有一个对应的值 桶数值+1;则对应后数组T中的数据为【0,1,2,0,1,1,0,1,1,0】在吧数组每个等于前面数组的和 结算后 数组T变为【0...原创 2018-03-20 22:01:36 · 192 阅读 · 0 评论