参考博客:https://www.cnblogs.com/chengxiao/p/6194356.html sort不稳定。归并排序是较为稳定的一种排序算法 复杂度:nlogn 本排序的一个应用:HDU 4911 求逆序对数量:http://acm.hdu.edu.cn/showproblem.ph ...
分类:
编程语言 时间:
2020-05-24 19:19:03
阅读次数:
56
"148. 排序链表" 难度 ?? 在 O ( n log n ) 时间复杂度和常数级空间复杂度下,对链表进行排序。 示例 1: 示例 2: 思路 $O(nlogn)$时间复杂度,分而治之,使用归并排序,数组归并排序代码可以 "看这里" 分割(找到中间节点,使用快慢指针) 合并 coding ...
分类:
编程语言 时间:
2020-05-23 20:37:46
阅读次数:
67
以上快速排序和归并排序的空间复杂度不正确 图2没有的参考图1,以图2为准(对,就是懒得重新画图了) 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 O(log2n)~O(n) 选择排序 O ...
分类:
编程语言 时间:
2020-05-23 20:29:05
阅读次数:
74
归并排序 归并排序的核心思想还是蛮简单的。如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。 具体实现: c++ //author : OuChenlu //date : 2020 5 22 //project : ...
分类:
编程语言 时间:
2020-05-22 19:50:17
阅读次数:
46
排序算法很多地方都会用到,近期又重新看了一遍算法,并自己简单地实现了一遍,特此记录下来,为以后复习留点材料。 废话不多说,下面逐一看看经典的排序算法: 1、Java排序算法之选择排序 选择排序的基本思想是遍历数组的过程中,以 i 代表当前需要排序的序号,则需要在剩余的 [i…n-1] 中找出其中的最 ...
分类:
编程语言 时间:
2020-05-22 13:04:35
阅读次数:
50
今天是重刷一本通的第二天 今天刷的是第二章的数据排序 这次呢 题有点多 直接放上前两个题的代码罢 T1车厢重组 /*T1车厢重组 这个小水题我们直接用冒泡排序过了罢*/ #include<iostream> using namespace std; int main(){ int n,a[n+1]= ...
分类:
其他好文 时间:
2020-05-21 00:38:00
阅读次数:
74
//merge sort //合并有序序列 //没有改变相等元素的前后位置 #include<iostream> #include<vector> using namespace std; void merge(vector<int>& v, int left, int right, int rig ...
分类:
编程语言 时间:
2020-05-20 20:06:28
阅读次数:
71
数据结构与算法 关于算法的代码写了一些在:https://gitee.com/yuan_yi_xiang/data_structure_algorithm欢迎指正 基础的数据结构: 数组、链表、栈、队列 基础排序算法: 冒泡排序o(n2)、插入排序o(n2)、选择排序o(n2) 归并排序和快速排序都 ...
分类:
编程语言 时间:
2020-05-20 12:05:17
阅读次数:
73
"题目链接" 记忆化搜索 这是一道区间DP的模板题。初学dp的话还是记忆化搜索好理解一些,很多dp其实也是从记忆化搜索转换过来的。考虑最后一步,我们要把两堆石子合并成一堆,那么肯定是某一个点为分割点分成的两堆石子,而这两堆石子也是由某一个点为分割点组成的,如此递推下去。所以我们倒着把一堆石子拆成两堆 ...
分类:
其他好文 时间:
2020-05-19 12:49:37
阅读次数:
62