
排序算法
文章平均质量分 85
排序算法
九又四分之三站台Emm
好好学习,天天向上
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
来来来,走过路过不要错过:排序算法汇总以及效果
1. 排序算法汇总2. 排序算法复杂度3. 算法实现3.1. 冒泡排序:BubbleSort3.1.1 冒泡排序的原理:1.对于一个数组,冒泡排序算法会比较相邻的两项的大小,并进行换。2.对每一对相邻的元素做同样的调整,如:第一个和第二个,第二和第三个,第三个和第四个等等,以此类推。这样下来,最后的素会是最大的。3.重复以上步骤。如果有n个元素,则第一次循环进行n-1次,第二循环进行n-2次,…………,第n-j次循环过后,会按大小顺序排出j较大的数。4.持续以上的步骤,直到没有任何一堆原创 2021-12-15 16:08:10 · 1553 阅读 · 22 评论 -
1/n 排序算法,排序算法演示界面与框架搭建
排序算法其实一直在纠结到底下一个类型算法写什么,一直没有确定下来数据结构.Net中的框架微服务架构.Net Core大数据ArcGIS二次开发一直在上面纠结,今天公司有一个同事突然和我聊起来了算法,说想学算法,一开始问看算法导论如何,我和他说可以买着,但是要有心里准备,因为你注定要先看一些基础的算法,你要学习数据结构,想到这里那就想写了,而且想起大学的时候参加蓝桥杯一群人在哪里讨论排序算法时候的热情,想想可能写代码对于我来说真的是一件兴趣,我想就算将来不做开发了,平常谢谢代码也会想老头们原创 2020-08-31 09:59:05 · 1624 阅读 · 0 评论 -
希尔排序
1. 希尔排序:ShellSort1.1 希尔排序的原理:希尔排序是将待排序的数组元素 按下标的一定增量分组 ,分成多个子序列,然后对各个子序列进行直接插入排序算法排序;然后依次缩减增量再进行排序,直到增量为1时,进行最后一次直接插入排序,排序结束。1.2 代码using SortInterface;using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace So原创 2020-09-23 22:16:51 · 1327 阅读 · 0 评论 -
归并排序
1.归并排序:MergeSort1.1归并排序原理第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列第二步:设定两个指针,最初位置分别为两个已经排序序列的起始位置第三步:比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3直到某一指针超出序列尾将另一序列剩下的所有元素直接复制到合并序列尾1.2 代码using SortInterface;using System;using System.Collections.Generic原创 2020-09-16 12:01:45 · 1330 阅读 · 0 评论 -
基数排序
基数排序:RadixSort LSD1.1 基数排序的原理:属于“分配式排序”(distributionsort),基数排序法又称“桶子法”(bucketsort)或binsort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O(nlog®m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法,同时基数排序分最高位优先"(MSD)法和最低位优先"(LSD)法。以下讲解的是LS原创 2020-09-12 11:16:08 · 1374 阅读 · 0 评论 -
快速排序
1. 快速排序:QuickSort1.1 快速排序的原理:快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间原创 2020-09-12 10:59:07 · 1318 阅读 · 0 评论 -
选择排序
1. 选择排序:SelectSort1.1 选择排序的原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。1.2 代码using SortInterface;using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace SortItem{原创 2020-09-03 23:05:53 · 1277 阅读 · 0 评论 -
插入排序
1. 插入排序:InsertSort1.1 插入排序的原理:插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。拿在左手上的牌总是排序好的,原来这些牌是桌子上牌堆中顶部的牌1.2 代码using SortInterface;using System;using System.Collections.Generic;using Sys原创 2020-09-03 22:53:23 · 1626 阅读 · 0 评论 -
双向冒泡排序
1. 双向冒泡排序:DoubleBubbleSort1.1 双向冒泡排序的原理:先对数组从左到右进行冒泡排序(升序),则最大的元素去到最右端再对数组从右到左进行冒泡排序(降序),则最小的元素去到最左端以此类推,依次改变冒泡的方向,并不断缩小未排序元素的范围,直到最后一个元素结束1.2 代码using SortInterface;using System;using System.Collections.Generic;using System.Linq;using System.Te原创 2020-09-01 11:43:34 · 4461 阅读 · 0 评论 -
冒泡排序
1.冒泡排序:BubbleSort1.1 冒泡排序的原理:1.对于一个数组,冒泡排序算法会比较相邻的两项的大小,并进行换。2.对每一对相邻的元素做同样的调整,如:第一个和第二个,第二和第三个,第三个和第四个等等,以此类推。这样下来,最后的素会是最大的。3.重复以上步骤。如果有n个元素,则第一次循环进行n-1次,第二循环进行n-2次,…………,第n-j次循环过后,会按大小顺序排出j较大的数。4.持续以上的步骤,直到没有任何一堆数字需要比较。1.2 代码using SortInterface;原创 2020-09-01 11:41:51 · 1348 阅读 · 0 评论