算法与数据结构
qin_Lion
程序的开发路上,越走越远
展开
-
Java实现的高级排序(三)————快速排序
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一 部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序 过程可以递归进行,以此达到整个数据变成有序序列。1.首先设定一个分界值,通过该分界值将数组分成左右两部分;2.将大于或等于分界值的数据放到到数组右边,小于分界值的数据放到数组的左边。此时左边部分中各元素都小于 或等于分界值,而右边部分中各元素都大于或等于分界值;3.然后,左边和右边的数据可以独立排序。原创 2020-07-20 22:55:53 · 104 阅读 · 0 评论 -
Java实现的高级排序(二)————归并排序
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子 序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序 表,称为二路归并。1.尽可能的一组数据拆分成两个元素相等的子组,并对每一个子组继续拆分,直到拆分后的每个子组的元素个数是1为止。2.将相邻的两个子组进行合并成一个有序的大组;3.不断的重复步骤2,直到最终只有一个组为止。public class MergeSort { public sta原创 2020-07-17 12:42:30 · 146 阅读 · 0 评论 -
Java实现的高级排序(一)————希尔排序
1.选定一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组;2.对分好组的每一组数据完成插入排序;3.减小增长量,最小减为1,重复第二步操作。public class Shell { public static void sort(Comparable[] a){ int h = 1; while (h<a.length/2){ h = 2*h+1; } while (h>=1){原创 2020-07-16 12:50:10 · 97 阅读 · 0 评论 -
Java实现的简单排序(三)————插入排序
1.把所有的元素分为两组,已经排序的和未排序的; 2.找到未排序的组中的第一个元素,向已经排序的组中进行插入; 3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待 插入元素放到这个位置,其他的元素向后移动一位;public class Insert { public static void sort(Comparable[] a){ for (int i = 0;i<a.length-1;i++){原创 2020-07-15 12:49:15 · 123 阅读 · 0 评论 -
Java实现的简单排序(二)————选择排序
**1.每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处 的值大于其他某个索引处的值,则假定其他某个索引出的值为最小值,最后可以找到最小值所在的索引 2.交换第一个索引处和最小值所在的索引处的值**public class Election { public static void sort(Comparable[] a){ for (int i = 0;i<a.length-1;i++){ in原创 2020-07-14 12:46:25 · 88 阅读 · 0 评论 -
Java实现的简单排序(一)————冒泡排序
简单算法(一)————冒泡排序欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高原创 2020-07-13 12:41:29 · 163 阅读 · 0 评论