您的位置:首页 > 其它

算法篇-算法基础4

2021-04-04 21:39 148 查看

常用算法集锦:

之前介绍了效率不高的low B三人组算法篇-算法基础3,这次来看看NB三人组!

一、快排

  1. 简介

快速排序(Quicksort)是对冒泡排序的一种改进。

快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

1、思路:1、取一个元素p(第一个元素),是元素p归位(去它该去的地方);

     2、列表被p分成两部分,左边的都比p小,右边的都比p大;

     3、递归完成排序

2、算法关键点

  • 归位

  • 递归



二、堆排序
0.简介

堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。

1、堆排序过程:

  • 1、建立堆

  • 2、得到堆顶元素,为最大元素

  • 3、去掉堆顶,将堆最后一个元素放在堆顶,此时可通过一次调整重新使堆有序

  • 4、堆顶元素为第二大元素

  • 5、重复步骤3,直到堆变空




三、归并排序

0.简介

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。

1、 假设现在的列表分两段有序,如何将其合成为一个有序列表。这种操作称为一次归并

2、归并关键字

  • 分解:将列表越分越小,直至分成一个元素

  • 终止条件:一个元素是有序的

  • 合并:将两个有序列表归并,列表越来越大

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: