汇编写算法

汇编写算法

二分

C++原版

#include<iostream>
using namespace std;
int main() {
	int n;
	cin >> n;
	int left = 0, right = n;
	while (left < right) {
		int mid = left + right + 1 >> 1;
		if (mid * mid <= n) left = mid;
		else right = mid - 1;
	}
	cout << left << endl;
	return 0;
} 

C++改版

//二分
#include<iostream>
using namespace std;
int main() {
	int s1;
	cin >> s1;
	int t1 = 0, t2 = s1;
	while (t1 < t2) {
		int t3 = t1 + t2 + 1 >> 1;
		int t4 = t3 * t3;
		if (t4 <= s1) t1 = t3;
		else t2 = t3 - 1;
	}
	cout << t1 << endl;
	return 0;
} 

汇编

.data

.text
	li $v0, 5
	syscall
	move $s1, $v0
	addi $t1, $t1, 0
	addi $t2, $s1, 0
loop:	bge $t1, $t2, end
	add $t3, $t1, $t2
	addi $t3, $t3, 1
	div $t3, $t3, 2
	mul $t4, $t3, $t3
	bgt $t4, $s1, else
		addi $t1, $t3, 0
		b go
	else:	addi $t2, $t3, -1
	go:
	b loop
end:	li $v0, 1
	move $a0, $t1
	syscall     
#include<iostream>
using namespace std;
char arr[100000], cnt;
char op[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
int main() {
	int n, num;
	cin >> n >> num;
	while (n > 0) {
		int t = n % num;
		n /= num;
		arr[cnt++] = t;
	}
	for (int i = 0; i < cnt; i++)
		cout << op[arr[i]];
	return 0;
} 
前言: 本人的原创作品经典算法研究系列,自从10年12月末至11年12月,了近一年。可以这么说,开博头俩个月一直在整理微软等公司的面试题,而后的四个月至今,则断断续续,除了继续微软面试100题系列,和程序员编程艺术系列之外,便在这经典算法研究系列和相关算法文章。 本经典算法研究系列,涵盖A*.Dijkstra.DP.BFS/DFS.红黑树.KMP.遗传.启发式搜索.图像特征提取SIFT.傅立叶变换.Hash.快速排序.SPFA.快递选择SELECT等15个经典基础算法,共计31篇文章,包括算法理论的研究与阐述,及其编程的具体实现。很多个算法都后续了续集,如第二个算法:Dijkstra 算法,便了4篇文章;sift算法包括其编译及实现,了5篇文章;而红黑树系列,则更是最后了6篇文章,成为了国内最为经典的红黑树教程。 OK,任何人有任何问题,欢迎随时在blog上留言评论,或来信:zhoulei0907@yahoo.cn批评指正。谢谢。以下是已经了的15个经典算法集锦,算是一个目录+索引,共计31篇文章: 十五个经典算法研究集锦+目录 一、A*搜索算法 一(续)、A*,Dijkstra,BFS算法性能比较及A*算法的应用 二、Dijkstra 算法初探 二(续)、彻底理解Dijkstra算法 二(再续)、Dijkstra 算法+fibonacci堆的逐步c实现 二(三续)、Dijkstra 算法+Heap堆的完整c实现源码 三、动态规划算法 四、BFS和DFS优先搜索算法 五、教你透彻了解红黑树 (红黑数系列六篇文章之其中两篇) 五(续)、红黑树算法的实现与剖析 六、教你初步了解KMP算法、updated (KMP算法系列三篇文章) 六(续)、从KMP算法一步一步谈到BM算法 六(三续)、KMP算法之总结篇(必懂KMP) 七、遗传算法 透析GA本质 八、再谈启发式搜索算法 九、图像特征提取与匹配之SIFT算法 (SIFT算法系列五篇文章) 九(续)、sift算法的编译与实现 九(再续)、教你一步一步用c语言实现sift算法、上 九(再续)、教你一步一步用c语言实现sift算法、下 九(三续):SIFT算法的应用--目标识别之Bag-of-words模型 十、从头到尾彻底理解傅里叶变换算法、上 十、从头到尾彻底理解傅里叶变换算法、下 十一、从头到尾彻底解析Hash表算法 十一(续)、倒排索引关键词Hash不重复编码实践 十二、快速排序算法 (快速排序算法3篇文章) 十二(续)、快速排序算法的深入分析 十二(再续):快速排序算法之所有版本的c/c++实现 十三、通过浙大上机复试试题学SPFA 算法 十四、快速选择SELECT算法的深入分析与实现 十五、多项式乘法与快速傅里叶变换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值