博客
关于我
排序算法
阅读量:324 次
发布时间:2019-03-04

本文共 1405 字,大约阅读时间需要 4 分钟。

归并算法

#include
#include
#include
#include
#include
#include
#include
using namespace std;const int maxn = 100010;void merge(int a[], int l1, int r1, int l2, int r2) { int temp[maxn]; int index = 0; int i = l1, j = l2; while (i <= r1 && j <= r2) { if (a[i] <= a[j]) { temp[index++] = a[i++]; } else { temp[index++] = a[j++]; } } if (i == r1 + 1) { while (j <= r2) { temp[index++] = a[j++]; } } if (j == r2 + 1) { while (i <= r1) { temp[index++] = a[i++]; } } for (int i = 0; i < index; i++) { a[l1 + i] = temp[i]; }}void printArray(int a[], int n) { for (int i = 0; i < n; i++) { printf("%d", a[i]); if (i != n - 1) { printf(" "); } } printf("\n");}void mergeSort(int a[], int n) { for (int step = 1; step <= n; step *= 2) { for (int i = 0; i < n; i += (step * 2)) { //对每一组 int second_array_first = i + step; if (second_array_first < n) { merge(a, i, second_array_first - 1, second_array_first, min(i + 2 * step - 1, n-1)); } } }}int main() { int a[] = { 1,3,2,4,4,2 }; mergeSort(a, 6); printArray(a,6);}

找素数

const int maxn = 10000001;int prime[maxn], pnum = 0;bool p[maxn] = {    true };void find_prime() {   	memset(p, true, sizeof(p));	for (int i = 2; i < maxn; i++) {   		if (p[i] == true) {   			prime[pnum++] = i;			for (int j = i * 2; j < maxn; j += i) {   				p[j] = false;			}		}		/*if (pnum > n)			break;*/	}}

转载地址:http://wshq.baihongyu.com/

你可能感兴趣的文章
invalid byte sequence for encoding
查看>>
银河麒麟系统配置apt网络源
查看>>
第七周 4.12-4.18
查看>>
程序设计入门14 结构体
查看>>
程序设计基础75 tips 广度搜索细节问题
查看>>
笨办法学python之数据类型
查看>>
笨办法学Python之将对象名的字符串类型,转化成相应对象
查看>>
ArduPilot源码极速下载手册(一文告别github慢速问题)
查看>>
聊一聊那些应该了解的大佬(飞控,人工智能方向)
查看>>
ArduPilot+mavros+gazebo+QGC联合仿真初体验
查看>>
px4调试bug--添加mavlink_log_info信息
查看>>
redis替换字符串命令
查看>>
redis向数组中添加值并查看数组长度
查看>>
python3基础梳理11python中模块和包
查看>>
JS编写一个函数,计算三个不同数字的大小,按从小到大顺序打印(穷举法)
查看>>
jQuery实现轮播图效果
查看>>
mybatis中like的注意
查看>>
sqlplus的基本使用
查看>>
oracle删除表重复数据
查看>>
EditText获取焦点并显示软键盘,Textview字间距,EditText输入监听判断不大于,处理倒计时
查看>>