算法02---数据结构和算法
文章平均质量分 76
数据结构和算法
知行合一。。。
这个作者很懒,什么都没留下…
展开
-
排序--04---希尔排序
希尔排序定义:希尔排序是插入排序的一种,又称“缩小增量排序”,是插入排序算法的一种更高效的改进版本。简单插入排序算法效率问题:那如果我们要提高效率,直观的想法就是一次交换,能把1放到更前面的位置,比如一次交换就能把1插到2和3之间,这样一次交换1就向前走了5个位置,可以减少交换的次数,希尔排序算法:希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O原创 2021-07-19 21:27:48 · 200 阅读 · 1 评论 -
排序--03---插入排序
插入排序排序原理:把所有的元素分为两组,已经排序的和未排序的;找到未排序的组中的第一个元素,向已经排序的组中进行插入;倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他的元素向后移动一位;代码实现方法1:public class Test01 { @Test public void test01() { int[] arr = {9, -16, 21, 23, -30, -49,原创 2021-07-18 09:34:56 · 153 阅读 · 0 评论 -
排序--02---选择排序
选择排序排序原理:每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处的值大于其他某个索引处的值,则假定其他某个索引出的值为最小值,最后可以找到最小值所在的索引交换第一个索引处和最小值所在的索引处的值代码实现:public class SelectSort { public static void selectSort(int[] data) { System.out.println("开始排序");原创 2021-07-17 12:56:32 · 129 阅读 · 0 评论 -
排序--01---概述--冒泡排序
排序概述十大内部排序算法比较 和 非比较的区别:比较排序常见的快速排序、归并排序、堆排序、冒泡排序等属于比较排序。在排序的最终结果里,元素之间的次序依赖于它们之间的比较。每个数都必须和其他数进行比较,才能确定自己的位置。在冒泡排序之类的排序中,问题规模为n,又因为需要比较n次,所以平均时间复杂度为O(n²)。在归并排序、快速排序之类的排序中,问题规模通过分治法消减为logN次,所以时间复杂度平均O(nlogn)。比较排序的优势是,适用于各种规模的数据,也不在乎数据的分布,都能进行排序原创 2021-07-12 19:17:17 · 135 阅读 · 0 评论