数据结构排序算法
文章平均质量分 60
_running4J
在外人眼中:程序员不过是在敲打键盘;但在程序员心中:程序员敲出的每个字符,都是程序的一部分。
展开
-
排序算法之 归并排序及时间复杂度分析
排序算法之 冒泡排序及性能优化(时间复杂度+空间复杂度分析)排序算法之 简单选择排序及时间复杂度分析排序算法之 直接插入排序及时间复杂度分析排序算法之 希尔排序及时间复杂度分析排序算法之 快速排序及时间复杂度分析排序算法之 堆排序及时间复杂度分析归并排序归并排序是建立在归并操作上的一种有效排序算法,该算法是采用分治法的一个典型应用。这里的分治如何理解?比如我们要统计本县城的高考状元,而一个县城中有很多中学,每个中学又有若干个班级,每个班级有若干名学生,每个学生是一个单独个体,看成数组中.原创 2020-05-12 20:13:53 · 7032 阅读 · 1 评论 -
排序算法之 堆排序及时间复杂度分析
排序算法之 冒泡排序及性能优化(时间复杂度+空间复杂度分析)排序算法之 简单选择排序及时间复杂度分析排序算法之 直接插入排序及时间复杂度分析排序算法之 希尔排序及时间复杂度分析排序算法之 快速排序及时间复杂度分析堆排序堆的概念:本质是一种数组对象。特别重要的一点性质:任意的叶子节点小于(或大于)它所有的父节点。对此,又分为大顶堆和小顶堆,大顶堆要求节点的元素都要大于其孩子,小顶堆要求节点元素都小于其左右孩子,两者对左右孩子的大小关系不做任何要求。利用堆排序,就是基于大顶堆或者小顶堆的一种排.原创 2020-05-11 18:01:23 · 7896 阅读 · 2 评论 -
排序算法之 快速排序及时间复杂度分析
排序算法之 冒泡排序及性能优化(时间复杂度+空间复杂度分析)排序算法之 简单选择排序及时间复杂度分析排序算法之 直接插入排序及时间复杂度分析排序算法之 希尔排序及时间复杂度分析快速排序科普: 快速排序算法最早由图领奖获得者Tony Hoare设计出来的,是上世界最伟大的计算机科学家之一。更牛的是,快速排序算法被列为20世界十大算法之一。基本思想:挖坑法+分治法从序列中选择一个基准数pivot [可以选择序列中的第一个数为pivot]将序列中所有数依次遍历,同时比基准数pivot大的放在.原创 2020-05-10 20:16:55 · 3105 阅读 · 0 评论 -
排序算法 之希尔排序及时间复杂度分析
排序算法之 冒泡排序及性能优化(时间复杂度+空间复杂度分析)排序算法之 简单选择排序及时间复杂度分析排序算法之 直接插入排序及时间复杂度分析希尔排序算法思想:将整个待排序列分割成若干个子序列(由相隔增量个元素组成),分别进行直接插入排序,然后依次缩小增量再进行排序,待整个序列中的元素基本有序时,再对全体元素进行一次直接插入排序。希尔排序的实现应该由三个循环完成(1)第一次循环,将增量d依次折半,直到增量d=1(2)第二三层循环,也就是直接插入排序所需要的两次循环。算法实现#inclu.原创 2020-05-09 16:18:26 · 18559 阅读 · 8 评论 -
排序算法之 直接插入排序及时间复杂度分析
排序算法之 冒泡排序及性能优化(时间复杂度+空间复杂度分析)排序算法之 简单选择排序及时间复杂度分析直接插入排序直接插入排序的核心思想就是:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过。因此,从上面的描述中我们可以发现,直接插入排序可以用两个循环完成:第一层循环:遍历待比较的所有数组元素第二层循环:将本轮选择的元素与前面已经排好序的元素相比较,若当前元素小,则进行交换算法实现int i,j,insertVal;fo.原创 2020-05-08 23:26:02 · 18651 阅读 · 2 评论 -
排序算法之 冒泡排序及性能优化(时间复杂度+空间复杂度分析)
冒泡排序算法是一种最简单且很实用的一种排序算法,其属于交换排序的一种(还有一种是快速排序算法)。冒泡算法思想将序列中的左右元素,依次比较,保证右边的元素始终大于左边的元素(第一轮结束后,序列最后一个元素一定是当前序列的最大值)对序列当中剩下的n-1个元素,再执行上一步操作,直到没有反序的记录为止对长度为n的序列,一共需要执行n-1轮比较冒泡算法实现int i,j,t...原创 2020-05-07 18:57:00 · 3834 阅读 · 1 评论 -
排序算法之 简单选择排序及时间复杂度分析
排序算法之 冒泡排序及性能优化(时间复杂度+空间复杂度分析)简单选择排序基本思想:比较+交换1. 从待排序序列中,找到关键字最小的元素;2. 如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;3. 从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。因此我们可以发现,简单选择排序也是通过两层循环实现。第一层循环:依次遍历序列当中的每一个元素第二层循环:将遍历得到的当前元素依次与余下的元素进行比较,符合最小元素的条件,则交换。排序算法实.原创 2020-05-08 18:52:59 · 9212 阅读 · 0 评论