![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基本排序算法
LKTracker
这个作者很懒,什么都没留下…
展开
-
基本排序算法——归并排序详解
归并排序的核心就是将待排序元素先不断分割直至不可分割,然后左右合并归一。本质上是分治和递归的使用。话不多说,直接上代码:#include<iostream>#include<vector>using namespace std;class Solution {public: //明确函数功能:将low至mid和mid+1至high的两段数据归并在一起,开辟新空间 void merge(vector<int>&a, int low, int m原创 2020-06-08 08:56:26 · 184 阅读 · 0 评论 -
快速排序
快速排序在工作面试中经常会被提及,今天记录下快速排序的学习心得。 快速排序核心:让某个基数(通常取第一个)回到它本该位于的位置(右边全部大于基数,左边全部小于基数),然后以该位置为界限,对两边再进行递归(本质上是分治)。首先找一个数作为基数(一般取第一个数),取两个指针,一个指向头,一个指向尾,先让尾指针从右往左找(一定先从尾部找),找到第一个比基准数小的,将值赋给头指针...原创 2019-12-15 16:19:41 · 138 阅读 · 0 评论 -
基本排序算法——选择排序(注释详细)
这次介绍选择排序,顾名思义,选择排序:遍历数组,每次选择一个最大或最小的存放在“合适”的位置,算法复杂度。 核心,遍历数组时,需要找出每一次遍历的最大值及其下标,然后跟起始位置的值进行交换。注意,N个数排序实际上是把N-1个数排好,因为最后一个“被安排了”。void select_sort(int arr[], int n)//选择排序{ int max = 0...原创 2019-11-09 18:46:48 · 331 阅读 · 0 评论 -
基本排序算法——冒泡排序(注释详细)
这几章介绍一下几种基本排序算法,这次先讲冒泡排序。 冒泡排序的基本思想:依次比较相邻的两个数,将小的(大的,思想一致)调到前面,时间复杂度。 冒泡算法核心:N个数共计需要进行N-1趟排序,第i趟排序需要进行N-i次比较。 理解:第一趟把最大的数排到右端,此后,最大的数不参与比较了(因为它已经排好序了),第二趟把第二大的数排到右端...原创 2019-11-09 14:33:31 · 549 阅读 · 0 评论