首页 > 其他分享 >模板合集

模板合集

时间:2023-02-24 16:59:00浏览次数:48  
标签:10005 int mid pos ++ while 合集 模板

模板

算法

冒泡排序

void bubble_sort(int* a, int n) {
	bool f = 1;
	
	while (f) {
		bool f = 0;
		for (int i = 1; i < n; i++)
			if (a[i] > a[i+1]) swap(a[i], a[i+1]), f = 1;
	}
	
	return ;
}

冒泡排序优化

int n;
int a[10005];

void BubbleSort(int n, int a[]) {
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n - i - 1; j++) {
			if (a[j] > a[j+1]) swap(a[j], a[j+1]);
		}
	}
}

插入排序

int n, cnt = 0;// 数组长度 插入数组长度 
int a[10005], r[10005];// 原数组 插入数组 

void InsertSort(int x) {// 插入 x 
	int pos = 0;// 记录 x 应插入的位置 
	
	while (pos < cnt && r[pos] < x) pos++;// 直到找到大于等于 x 的数 
	for (int i = cnt; i > pos; i--)
		r[i] = r[i-1];// 后移数组 
		
	r[pos] = x;
	cnt++;	// 插入数组长度加一 
}

插入排序优化

int n;
int a[10005];

void InsertSort() {
	for (int i = 0; i < n; i++) {
		int pos = 0, x = a[i];
		
		while (pos < i && a[pos] < a[i]) pos++;
		
		for (int k = i; k > pos; k--)
			a[k] = a[k-1];
		
		a[pos] = x;
	}
} 

归并排序

int n;
int a[10005], t[10005];// a 原数组 t 排序数组 

void MergeSort(int l, int r) {
	if (l == r - 1) return ;
	
	int mid = (l + r) >> 1;
	
	MergeSort(l, mid); MergeSort(mid, r);
	
	int p = l, q = mid, k = l;
	
	while (p < mid && q < r) {
		if (a[p] < a[q]) t[k++] = a[p++];
		else t[k++] = a[q++];
	}
	
	while (p < mid) t[k++] = a[p++]; // 复制剩余数组 
	while (q < r) t[k++] = a[q++];
	
	for (int i = l; i < r; i++)
		a[i] = t[i];
}

快速排序

int n;
int a[10005], t[10005];

void QuickSort(int l, int r) {
	if (l >= r - 1) return ;
	
	int flag = a[rand() % (r - l) + l];
	int p = l, q = r;
	
	for (int i = l; i < r; i++) {
		if (a[i] < flag) t[p++] = a[i];
		else if (a[i] > flag) t[--q] = a[i];
	}
	
	for (int i = p; i < q; i++) // 复制剩下等于 flag 的数 
		t[i] = flag;
		
	for (int i = l; i < r; i++)
		a[i] = t[i];
		
	QuickSort(l, p);
	QuickSort(q, r);
}

选择排序

int n;
int a[10005];

void SelectSort(int n, int a[]) {
	for (int i = 0; i < n; i++) {
		int key = i;
		
		for (int j = i + 1; j < n; j++)
			if (a[j] < a[key]) key = j;
			
		swap(a[i], a[key]);
	}
}                              

选择排序优化

int n;
int a[10005];

void SelectSort(int n, int a[]) {
	for (int i = 0; i < n; i++) {
		for (int j = i + 1; j < n; j++)
			if (a[j] < a[i]) swap(a[j], a[i]);
	}
}

二分答案

记录答案

while (l <= r) {
	int mid = (l + r) >> 1;
	if (check(mid)) {
    	ans = mid; r = mid - 1;
	}
    else l = mid + 1;
}
printf("%d", ans);

不记录答案

while (l < r) {
	int mid = (l + r) >> 1;
   	if (check(mid)) r = mid;
   	else l = mid + 1;
}
printf("%d", l);

二分查找

查找值为 \(key\) 的元素的下标,不存在返回 \(-1\)

int l = 1, r = n;
while (l <= r) {
	int mid = (l + r) >> 1;
	if (a[mid] == key) return mid;
	else if (a[mid] > key) r = mid - 1;
	else l = mid + 1;
}
return -1;

快速幂

ll Fast_Power(ll a, ll b, ll p) {
	a %= p;
	while (b) {
		if (b & 1) s = (s * a) % p;
		a = (a * a) % p;
		b >>= 1;
	}
	return s % p;
}

标签:10005,int,mid,pos,++,while,合集,模板
From: https://www.cnblogs.com/Gery-blog/p/17152081.html

相关文章

  • (3). Vscode 配置模板输出
    1.点击设置,选择配置用户代码片段2.选择vue.json3.配置快捷模板......
  • python基于word模板批量生成word文件
    1、需要用到docxtpl库,用于操作word模板安装:pipinsatlldocxtpl处理之前的word模板 处理后的word 下面直接上代码揭开它的神秘面纱:第一步,读取excel中的内容imp......
  • 设计模式之(13)--模板方法模式
    今天我们来学习下模板方法设计模式。模板方法(TemplateMethodPattern):抽象的父类中定义一个操作中算法的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一......
  • 深度学习学习合集
    平台已经创办九个月,感谢您一直与我们陪伴,今天我们主要把之前比较好的推送整理一次,希望有兴趣的朋友可以更好的去阅读去学习!首先整理的是综述性的文献,让大家简单明了的进入一......
  • nuget包模板
    <?xmlversion="1.0"encoding="utf-8"?><ProjectSdk="Microsoft.NET.Sdk.WindowsDesktop"><PropertyGroup><TargetFrameworks>net45;net46</TargetFrame......
  • Vue模板是怎样编译的
    这一章我们开始讲模板解析编译:总结来说就是通过compile函数把tamplate解析成renderFunction形式的字符串compiler/index.jsimport{parse}from'./parser/index'imp......
  • StatefulSet 模板,更新,扩缩容,删除
    概念:StatefulSet是用来管理有状态应用的工作负载API对象,kubectl中可以简写sts,sts每一个pod生成一个唯一的标识符,sts_name-number,number从0开始。StatefulSet会关联卷(......
  • DFS和BFS理解+模板+例题
    DFS和BFS理解+模板+例题DFS(深度优先搜索)本质上是暴力把所有的路径都搜索出来,它运用了回溯,保存这次的位置并深入搜索,都搜索完便回溯回来,搜下一个位置,直到把所有最深位置都......
  • ES6-ES11 模板字符串
    视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>......
  • 56.函数模板
    1.什么是函数模版  函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就成为函数模板2.怎么编写函数模版//T代......