十大排序算法分类、特点和关系 (1)冒泡排序(交换排序的一种) (2)选择排序 (3)插入排序 (4)归并排序(采用了分治思想,额外的空间复杂度O(N),容易记错,最后合并大数组的时候需要开辟一个长度为N的数组) https://blog.csdn.net/u010452388/article/de ...
分类:
编程语言 时间:
2020-03-02 01:05:29
阅读次数:
83
由于木块可以由一些木块的消除,使两边相同颜色的合并 所以我们设定一个归并方式,即每个区间记录一下右边的延展性。 (等于左边找右边) 设 $f[i][j][k]$ 为$[i, j]$ 区间,右侧有 $k$ 个颜色 $= a[j]$ 的。 考虑两种转移方式。 第一种操作:直接搞掉右边的。 设 $i in ...
题目: 给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。 输入格式 第一行包含整数n,表示数列的长度。 第二行包含 n 个整数,表示整个数列。 输出格式 ...
分类:
编程语言 时间:
2020-02-28 20:51:45
阅读次数:
65
总排序趟数与初始状态无关的有:(除了快速排序和优化的冒泡,其他都是) 算法复杂度与初始状态无关的有:堆排序、归并排序、选择排序、基数排序。 元素总比较次数与初始状态无关的有:选择排序、基数排序。 元素总移动次数与初始状态无关的有:归并排序、基数排序。 快速排序的最坏情形是数组为正序或逆序,如果pos ...
分类:
其他好文 时间:
2020-02-27 16:17:30
阅读次数:
69
一、 考试的总体要求 本考试内容由两部分组成,数据结构和程序设计,各占总分的50%。 数据结构是计算机科学与技术专业基础课,要求学生掌握基本的数据结构及相关的存储方式、基本运算、算法和应用,并能运用盒图、结构化语言、类C、高级语言(C或C++)等方法之一编写算法。 程序设计指采用C++语言,应用数据 ...
分类:
其他好文 时间:
2020-02-27 01:05:22
阅读次数:
60
//归并排序 class ArrayList { constructor () { this.array = [] } insert (data) { return this.array.push(data) } mergeSort () { this.array = this.merge_1(th ...
分类:
编程语言 时间:
2020-02-26 20:45:42
阅读次数:
79
#define _CRT_SECURE_NO_WARNINGS#include<iostream>using namespace std;void mergeSort(int a[], int s, int e, int temp[]) { if (s < e) { int m = s + (e - ...
分类:
编程语言 时间:
2020-02-25 20:27:18
阅读次数:
75
向量的基本实现和操作,含归并排序。 1 #include<iostream> 2 using namespace std; 3 typedef int ElemType; 4 #define DEFAULT_CAPACITY 10 5 6 class Vector{ 7 public: 8 int ...
分类:
编程语言 时间:
2020-02-25 14:36:06
阅读次数:
76
1 // 插入排序的写法:即使不需要哨兵,也可以写的很流畅。 2 int* insertionSort(int* A, int n) { 3 // write code here 4 for(int i=1;i<n;i++){ 5 int j=i-1,tmp=A[i]; 6 while(j>=0 & ...
分类:
编程语言 时间:
2020-02-23 18:25:30
阅读次数:
83
直接插入、选择排序、冒泡排序、快速排序、……归并排序、基数排序、希尔、堆排序、 直接插入: 思想是:1、将数据序列分成两部分,前一部分是有序的,后面一部分是无序的. 2、将无序变有序,首先从第一开始,然后第一,第二比较后排序,此时这两位就是有序的了;然后从无序的队列中取出第三位和第二位比较,然后他们 ...
分类:
编程语言 时间:
2020-02-23 16:32:03
阅读次数:
94