2021-05-19

二路归并排序算法:

利用分治思想  先把要排序的数组进行划分  像二分查找一样从中点处开始划分r=(p+q)/2;

然后递归划分mergesort(a,p,r);mergesort(a,r+1,q);

最后再递归合并

注意:合并的时候要新建立两个辅助数组b[]和c[],然后把b和c中的元素按照要求的顺序重新写入a中

具体过程:

代码实现:

#include<iostream>
#include<bits/stdc++.h>
#include<vector>
using namespace std;

//对划分的数组进行合并
void merge(int a[], int p, int r, int q) {
	int n1 = r - p + 1;
	int n2 = q - r;
	vector<int>b(n1 + 1);
	vector<int>c(n2 + 1);
	for (int i = 0; i < n1; ++i) {
		b[i] = a[i + p];
	}
	for (int i = 0; i < n2; ++i) {
		c[i] = a[i + r + 1];
	}
	int i = 0, j = 0, k = p;
	while (i < n1 && j < n2) {
		if (b[i] <= c[j]) {
			a[k++] = b[i++];
		}
		else {
			a[k++] = c[j++];
		}
	}
	while (i < n1) {
		a[k++] = b[i++];
	}
	while (j < n2) {
		a[k++] = c[j++];
	}
}
//利用分治思想对数组划分
void mergesort(int a[], int p, int q) {
	if (p < q) {
		int r = (p + q) / 2;
		mergesort(a, p, r);
		mergesort(a, r + 1, q);
		merge(a, p, r, q);
	}
}


int main() {
	int a[6] = { 5,4,3,2,1,0 };
	mergesort(a, 0, 5);
	for (int i = 0; i < 6; ++i) {
		cout << a[i] << " ";
	}
	return 0;
}

 

### 回答1: Linux中的Vim编辑器是一款非常强大的文本编辑器,它可以在终端中使用,支持多种编程语言的语法高亮和自动补全功能,还可以通过插件扩展其功能。Vim编辑器的操作方式比较特殊,需要一定的学习成本,但是一旦掌握了它的使用方法,可以大大提高编辑效率。 ### 回答2: Linux中的Vim是一种功能强大的文本编辑器,广泛用于Linux和其他Unix-like操作系统上。Vim(Vi IMproved)是以Unix上的原始文本编辑器Vi为基础开发而来的。它提供了比Vi更多的功能和改进,并成为了Linux系统上一种被广泛使用的编辑器Vim具有很多强大的特性,如多窗口编辑、语法高亮、自动补全、宏录制、多级撤销、分屏编辑等。它支持多种编程语言和文件格式,并且可以通过安装插件来扩展其功能。此外,Vim还具有高度可定制性,用户可以通过编辑配置文件来设置自己喜欢的界面和功能。 Vim的使用可能对新手有一定的学习曲线,因为它的命令和快捷键需要一些时间去熟悉。但一旦掌握了,它可以极大提高编辑效率。与其他文本编辑器相比,Vim更加灵活和高效,可以在不用鼠标的情况下完成多种编辑操作。此外,Vim在兼容Vi的同时也增加了很多新特性,使得它成为Vi的升级版。 总的来说,Linux中的Vim是一款功能强大、灵活高效的文本编辑器。它不仅适用于一般的文本编辑任务,还可以用于编程开发、系统管理等各种工作。虽然学习使用Vim可能需要一些时间,但它的功能、可定制性和效率使得它成为了Linux用户中非常受欢迎的编辑器之一。 ### 回答3: Linux vim编辑器(全称为vi improved)是一款在Linux系统中广泛使用的文本编辑器。它是vim编辑器的一个版本,相对于传统的vi编辑器,提供了更多的功能和扩展性。 首先,vim编辑器具有强大的编辑功能。它支持多种编辑模式,包括普通模式、插入模式、命令行模式等。在普通模式下,可以通过按键来进行光标移动、删除、复制、粘贴等操作,而在插入模式下则可以进行文字输入。此外,vim还支持各种编程语言的语法高亮显示,使得代码更加易读。 其次,vim编辑器支持自定义配置。用户可以通过编辑.vimrc文件来设置自己的编辑器偏好,如颜色方案、缩进设置等。也可以安装插件来增加功能,例如代码补全、版本控制等。这种可定制性使得vim编辑器可以根据用户的需求进行个性化配置,提高编辑效率。 另外,vim编辑器还支持分屏和标签页功能。可以同时打开多个文件,并在不同的窗口或者标签页中进行编辑。这种多窗口的功能使得同时处理多个文件更加方便,提高了工作效率。 总的来说,Linux vim编辑器是一款功能强大且高度可定制的文本编辑器。它不仅可以满足日常编辑需求,还可以通过自定义配置和插件扩展功能,适用于各种编程和编辑任务。如果善于利用这些特性,vim编辑器能够大大提高编辑效率和工作流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值