![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
文章平均质量分 84
kkmigu
拿下拿下
展开
-
排序算法学习11_堆排序(Java)
堆排序 一、排序介绍 堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子节点的键值或索引总是小于(或者大于)它的父节点。 子结点小于父结点就是大顶堆 反之就是小顶堆 堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。且是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。 二、堆排序实现 堆数据结构实现方式,不了解的可以看看往前博客,这边主要来讲排序的实现方式(其实并没有多出什么内容) 给出一个如下数组:Integer[] a =原创 2021-03-14 21:21:52 · 78 阅读 · 0 评论 -
排序算法学习05_希尔排序(Java)
希尔排序 前言:在博客写这些文章的目的用于记录所学,怕以后忘了,如果哪里写的不对欢迎指正,谢谢!! 学习目标:掌握希尔排序算法的原理和思想 一、前提知识 排序算法概念、时间复杂度。可前往此网址 排序算法学习01_算法基础介绍阅读 需要了解直接插入排序 二、希尔排序介绍 希尔排序(Shellsort),也称递减增量排序算法,是直接插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。 三、希尔排序工作原理 其实就比直接插入排序多一点,就是分组。 上面讲过,原创 2021-01-17 20:43:03 · 119 阅读 · 0 评论 -
排序算法学习04_直接插入排序(Java)
直接插入排序 前言:写这些博客的目的用于记录所学,怕以后忘了,如果哪里写的不对欢迎指正 学习目标:理解并精通使用直接插入排序 一、前提知识 排序算法概念、时间复杂度。可前往此网址 排序算法学习01_算法基础介绍阅读 二、直接插入排序介绍 直接插入排序是属于插入排序中的一种简单的排序,它通过抽象两个序列,一个为正在排序的序列称之为有序序列,一个为未排序序列,每次从未排序序列中取值放入有序序列,来完成排序,就像打扑克牌一样 三、直接插入排序工作原理 构建一个有序序列,接着取一原创 2021-01-16 22:43:43 · 154 阅读 · 0 评论 -
排序算法学习03_简单选择排序(Java)
简单选择排序 前言:写这些博客的目的用于记录所学,怕以后忘了,如果哪里写的不对欢迎指正 学习目标:理解并精通使用简单选择排序 一、前提知识 排序算法概念、时间复杂度。可前往此网址 排序算法学习01_算法基础介绍阅读 二、简单选择排序介绍 简单选择排序是属于选择排序算法的其中一种简单排序。该算法每进行一次重复走访时,只选择一个值进行排序,简单选择排序的名字也由此而来 三、简单选择排序工作原理 在每次重复走访过程中,保存未排序序列的第一个元素且先指定为最大/最小元素,然后再从原创 2021-01-16 22:28:07 · 128 阅读 · 0 评论 -
排序算法学习02_冒泡排序(Java)
冒泡排序 学习目标:理解并精通使用冒泡排序 一、前提知识 排序算法概念、时间复杂度。可前往此网址 https://editor.csdn.net/md/?articleId=112686088阅读 二、冒泡排序介绍 冒泡排序是一种简单的排序算法,它重复地走访要排序的数列,比较时一次比较两个元素,如果符合条件则交换,每经历一次重复访问,数列中所有元素都会接近自己的位置,且必然有一个元素是已经排列完的。 该算法名字的由来也是因为这个,在一次排列中,所有元素慢慢靠近自己的位置,就像水底下的气原创 2021-01-15 19:41:42 · 170 阅读 · 0 评论 -
排序算法学习10_基数排序(Java)
基数排序 学习目标:掌握基数排序算法的原理和思想 一、前提知识 排序算法概念、时间复杂度。可前往此网址 排序算法学习01_算法基础介绍阅读 二、基数排序介绍 基数排序( Radix sort ),基数排序算法通过对原序列中元素的各个位数分别进行切割来排序,可以说是我们前两篇计数排序和桶排序的结合版本,也是一种非比较型的整数排序算法。且稳定的。 三、基数排序工作原理 基数排序也如计数排序一样,利用数组下标排序元素,但此时它并不是直接用元素大小来对应数组下标,而是通过对元素值的每原创 2021-01-22 17:08:01 · 78 阅读 · 0 评论 -
排序算法学习09_桶排序(Java)
桶排序 前言:在博客写这些文章的目的用于记录所学,怕以后忘了,如果哪里写的不对欢迎指正,谢谢!! 学习目标:掌握桶排序算法的原理和思想 一、前提知识 排序算法概念、时间复杂度。可前往此网址 排序算法学习01_算法基础介绍阅读 二、桶排序介绍 桶排序(Bucket sort),桶排序是我们上篇讲过的计数排序的升级版,所以桶排序也是如计数排序一样,通过把原序列的元素放置到“一个新的位置”上,然后依次取出排序。 且桶排序也不是比较排序,桶排序是稳定的 三、桶排序工作原理原创 2021-01-21 21:44:40 · 152 阅读 · 3 评论 -
排序算法学习08_计数排序(Java)
计数排序 前言:在博客写这些文章的目的用于记录所学,怕以后忘了,如果哪里写的不对欢迎指正,谢谢!! 学习目标:掌握计数排序算法的原理和思想 一、前提知识 排序算法概念、时间复杂度。可前往此网址 排序算法学习01_算法基础介绍阅读 二、计数排序介绍 计数排序(Counting sort)是一种稳定的线性时间排序算法。计数排序不是比较排序, 它利用数组下标来排序元素。 三、计数排序工作原理 计数排序利用数组下标来排序元素。通过把要排序序列中的值,依次放入一个新的数组中。如何原创 2021-01-20 22:04:35 · 158 阅读 · 0 评论 -
排序算法学习07_归并排序(Java)
归并排序 前言:在博客写这些文章的目的用于记录所学,怕以后忘了,如果哪里写的不对欢迎指正,谢谢!! 学习目标:掌握归并排序算法的原理和思想 一、前提知识 排序算法概念、时间复杂度。可前往此网址 排序算法学习01_算法基础介绍阅读 二、归并排序介绍 归并排序算法,采用分治思想排序元素。它和快速排序类似,递归地对序列一分为二进行排序。 三、归并排序工作原理 归并排序也是递归地对序列一分为二进行排序。但它不像快排,边分边排。而是一直进行分解,分解到某个子序列只剩一个元素时,然后原创 2021-01-19 21:20:06 · 96 阅读 · 0 评论 -
排序算法学习06_快速排序(Java)
快速排序 前言:在博客写这些文章的目的用于记录所学,怕以后忘了,如果哪里写的不对欢迎指正,谢谢!! 学习目标:掌握快速排序算法的原理和思想 一、前提知识 排序算法概念、时间复杂度。可前往此网址 排序算法学习01_算法基础介绍阅读 二、快速排序介绍 快速排序(英语:Quicksort),属于交换排序的一种。又称分区交换排序(partition-exchange sort),我们一般简称为快排 三、快速排序工作原理 首先了解一下分治法:分治法将问题分解为规模更小的子问题,然后原创 2021-01-18 22:49:04 · 133 阅读 · 0 评论