
数据结构及算法
文章平均质量分 90
Code综艺圈
一个被程序搞丑的帅小伙,从事于C#/.Net/.NetCore开发,涉及JAVA、前端、部署等;
展开
-
简单选择排序就是简单~~~
前言前面几篇分享了插入排序和交换排序,接下来说说选择排序~~~选择排序(Selection sort):每一趟在待排序元素中选取元素值最小(或最大)的元素加入有序子序列。即在一堆数据中,每次挑出最小的或最大的放入其他有序序列中,当选择完所有待排序数据时,排序就完成了。选择排序有两种:简单选择排序和堆排序;接下来就从简单的开始,先来说说简单选择排序。正文1.1 简单选择排序算法思想简单选择排序很直观,直接从待排序列表中找出最小(或最大)的元素放到有序序列中,直到待排序列表中的元素被选择原创 2021-05-12 14:20:28 · 246 阅读 · 1 评论 -
快速排序的性能和名字一样优秀
前言上次分享的冒泡排序虽然比较简单、容易理解,但每一次冒泡的过程都需要依次比较相邻的元素,然后交换,可见性能还是有很大的优化空间,只要能减少比较次数,性能自然就上去啦;快速排序便是一个很不错的选择~~~正文1.1 快速排序算法思想快速排序(Quicksort)是对上一次分享的冒泡排序算法的一种改进,主要是减少比较次数,以此来提高排序性能;也属于交换排序的一种。算法思想在待排序列表中任取一个元素作为基准值; 将剩下的元素和基准值依次比较,小于的放左边,大于的放右边,最后通过一趟排序将原创 2021-05-07 08:52:14 · 91 阅读 · 0 评论 -
打个赌,用得最多的冒泡排序肯定少了个关键点
前言冒泡排序应该是很多小伙伴的最爱,简单、直接、好理解;回顾以往参与和阅读的项目,凡是牵涉自定义排序的算法,很大一部分都在用冒泡,其中很多都忽略了一个关键点;来,咱们细细品...正文1. 冒泡排序算法思想冒泡排序(Bubble Sort)是属于交换排序的一种,顾名思义,就是一个元素,依次和相邻元素进行比较(升序或降序),然后进行交换,这个过程就称为冒泡。算法思想从前往后(或从后往前)依次比较待排序数据中相邻的两个元素的值,若符合交换条件,则进行交换,直到待排序数据比较完,这样的过程就原创 2021-04-13 09:04:35 · 111 阅读 · 0 评论 -
希尔排序听起来有点难,其实很简单
前言直接插入排序当待排序数据的顺序和期望排序结果相反时,排序效率是最差的;上次聊到的折半插入排序只是减少有序列表的比较次数,而对于整体数据遍历次数还是没有得到优化;接下来要说的希尔排序就是针对整体数据进行优化,从而提升排序效率。正文1.1 希尔排序算法思想希尔排序(Shell's Sort)是直接插入排序算法的改进版,又称“缩小增量排序”(Diminishing Increment Sort);算法思想将待排序数据根据指定步长进行分组,分别进行直接插入排序;减小步长,重复分组,重复直原创 2021-04-13 09:03:37 · 210 阅读 · 0 评论 -
二分查找和折半插入排序一块说说-很合适~~~
前言上一篇在聊时间复杂度和空间复杂度时,没有按指定格式显示(明明预览的时候没问题的),强迫症的我稍微优化了一下重新发布,目的就是让小伙伴看着舒服。上次聊到的直接插入排序在比较有序数据和待插入数据时,是通过依次遍历的方式进行比较,当数据量比较大时,得考虑进一步优化;折半插入排序就是通过减少有序数据与待插入数据的比较次数,从而提升效率。正文1. 先来熟悉一下折半查找1.1 折半查找算法思想折半查找又称二分查找,仅适用于有序的顺序表;思想(假设顺序表是升序的):首先将指定值与顺序表原创 2021-03-31 08:57:18 · 245 阅读 · 0 评论 -
大牛领导找我聊了两句:搞框架的同时别忘了算法
前言程序=数据结构+算法,好的算法能让程序更高效的运行;在当今数据信息时代,数据分析和数据处理肯定是避免不了,而算法便成为了很多公司门槛级的要求,特别是大厂;赶紧搞起来,说不定离进大厂就只差一步呢(算法)~~~算法简介算法是一组完成任务的指令,任何代码片段都可视为算法。如下:1. 算法五大特性有穷性:一个算法必须在执行有限步之后结束,且每一步都可在有限时间内完成。通俗一点理解就是不能出现类似死循环这样,导致算法无法结束。 确定性:算法中每条指令必须有确切的含义,对于..原创 2021-03-29 09:08:40 · 109 阅读 · 0 评论