排序
小米内推官_AngelDg
我们总以为,是生活欠我们一个“满意”,其实是我们欠生活一个“努力”。
展开
-
带你轻松理解拓扑排序
拓扑排序介绍为什么会有拓扑排序?拓扑排序有何作用?知识点习题介绍拓扑排序,很多人都可能听说但是不了解的一种算法。或许很多人只知道它是图论的一种排序,至于干什么的不清楚。又或许很多人可能还会认为它是一种啥排序。而实质上它是对有向图的顶点排成一个线性序列。至于定义,百科上是这么说的:对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通原创 2020-09-02 11:33:49 · 618 阅读 · 0 评论 -
八种基本排序的含图详解
八种基本排序详解网址[冒泡排序https://blog.csdn.net/AngelDg/article/details/98535039选择排序https://blog.csdn.net/AngelDg/article/details/103446151插入排序https://blog.csdn.net/AngelDg/article/details/10...原创 2020-02-16 23:27:46 · 1823 阅读 · 0 评论 -
C:八种基本排序——基数排序(8)
基数排序原理:【性能】:假设在基数排序中,r为基数,d为位数。则基数排序的时间复杂度为O(d(n+r))。对于任何位数上的基数进行“装桶”操作时,都需要n+rd个临时空间。是稳定排序算法。思路:图解基数排序算法解析:C代码如下:代码生成图如有不同见解,欢迎留言讨论!...原创 2020-02-16 23:20:47 · 595 阅读 · 2 评论 -
C:八种基本排序——快速排序(7)
快速排序原理:【思路】:每轮选择一个基准元素(比如第一个),将待排序的记录分割成两部分,一部分的元素值均比基准元素值小,另一部分比基准值大,然后分别对这两部分用同样的方法排序。一般基于递归实现。冒泡排序每次只调整了一个数或几个数的相对关系,而快速排序每遍都让两边保持相对关系。【性能】:快速排序是不稳定排序,时间复杂度为O(nlogn)。快速排序是通常被认为在O(nlog2n)的排序方法中平均...原创 2020-02-14 23:57:34 · 410 阅读 · 0 评论 -
C:八种基本排序——堆排序(6)
知识扩充完全二叉树的特点:从作为第一层的根开始,除了最后一层之外,第N层的元素个数都必须是2的N次方;第一层2个元素,第二层4个,第三层8个,以此类推。每一行的元素都从最左边开始安放(生成的顺序是从上往下,从左往右),两个元素之间不能有空闲小根堆与大根堆的定义:有一棵完全二叉树,对于任意一个子节点,其数值均不小于其父节点的值,这样层层递推,就是根节点的值最小,这样的树,称为小根堆...原创 2020-02-10 23:50:59 · 273 阅读 · 0 评论 -
C:八种排序算法——归并排序(5)
归并排序原理:归并排序采用的是分治法,并且依托于归并操作,其思想是分而治之。归并操作是将两个有序的数列合并到一个有序的序列,那么对于一个无序的长序列,可以把它分解为若干个有序的子序列,然后依次进行归并。如果我们说每一个数字都是单独有序的序列,那么只要把原始长序列依次分解,直到每个子序列都只有一个元素的时候,再依次把所有的序列进行归并,直到序列数为1为止。思路:分解:将列表越分越小,直至...原创 2020-02-09 22:35:18 · 289 阅读 · 0 评论 -
C:八种基本排序——希尔排序(4)
希尔排序原理:希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。思路:选择一个增量序列 t1,t2,……,tk,其中 ti > tj, tk = 1;按增量序列个数 k,对序列进行 k 趟排序;每趟排序,根据对应的增量 ti,将待...原创 2020-02-08 23:56:04 · 359 阅读 · 0 评论 -
C:八种基本排序——插入排序(3)
直接插入排序原理:将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序。思路:将数组的第一个数认为是有序数组,从前往后扫描该有序数组,把数组中其余n-1个数,根据数值的大小,插入到有序数组中,直至数组中的所有数有序排列为止。性能:直接插入排序是稳定排序,时间复杂度为O(n^2),不需要额外空间。图解冒泡排序:算法分析当初始序列...原创 2020-02-06 23:55:24 · 279 阅读 · 0 评论 -
C:八种基本排序——选择排序(2)
选择排序原理:从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。思路:在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;第二次遍历n-2个数,找到最小的数值与第二个元素交换;……第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。图解选择排序:算法分析:排序算法...原创 2019-12-08 18:17:14 · 753 阅读 · 0 评论 -
C:八种基本排序——冒泡排序(1)
如有不同见解,欢迎留言!#include <stdio.h>#include <stdlib.h>void bubbleSort(int arr[], int sz){ int i, j ,tmp; for (i = 0; i <= sz - 1; i++){ //冒泡的趟数 int flag = 1; for (j = 0; j < sz...原创 2019-08-05 23:23:46 · 366 阅读 · 0 评论