![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
常用算法
珏落
在校卑微三无人员
展开
-
gcd(欧几里得算法)(辗转相除法)
用于求最大公约数 普通写法: #include <iostream> using namespace std; int main() { int m = 0, n = 0, r = 0;// 规定 m > n ,r为 m 除以 n 的余数 cin >> m >> n; if(m < n) { swa...原创 2019-11-05 12:52:29 · 182 阅读 · 0 评论 -
牛顿法
#include <stdio.h> #include <math.h> double fun(int a, double b) { double ave = (b+a/b)/2; return ave; } int main() { int a; scanf("%d", &a); double b/*猜测的数字*/, ave/*(猜测的数字b)和(数...原创 2019-11-05 12:49:52 · 132 阅读 · 0 评论 -
位运算的简单介绍及使用
#include <stdio.h> int main() { int a, b; scanf("%d %d", &a, &b);//b 不能等于 0 !!! printf("%d", a&b);//如果 a = 5; b = 28; 得到的答案就是:00101(5) & 11100(28) 得到 00100(4) return 0; }...原创 2019-11-05 12:47:14 · 94 阅读 · 0 评论 -
年龄排序(散列表)
问题描述:一个城市里有 n(n>=100000 , 且最大年龄为100岁) 个人,现在要统计他们的年龄。 使用了哈希散列表的思想! #include <stdio.h> int main() { int n = 0; scanf("%d", &n); for(; n != 0;) { int age[101] = {0}; int s[n]; int...原创 2019-11-05 12:37:37 · 421 阅读 · 0 评论 -
康托展开及康托逆展开
康托展开(求全排列的某一排列的次序即 康托映射 ) X = A[0] * (n-1)! + A[1] * (n-2)! + … + A[n-1] * 0! A[i] 指的是位于 已排列的排列 的位置i后面的数小于 A[i] 值的个数,后面乘的就是后面还有多少个数的阶乘。 说明 :这个算出来的数康拖展开值,是在所有排列次序 - 1 的值, 【因此 X+1 即为在全排列中的次序!!】 例如: 在(...原创 2019-11-05 12:16:53 · 280 阅读 · 0 评论 -
二分查找
#include <stdio.h> //对一组已排序的数据进行查找,二分查找是效率最高的查找算法 !! int Binary_search(int s[], int size, int c) { size–; int i = size/2; for(; c != s[i]; ) { if(c > s[i]) { i = (i + size)/2; } else { i = i/...原创 2019-11-05 11:59:51 · 104 阅读 · 0 评论