静思心远
嵌入式&&人工智能
展开
-
软件门槛之算法
算法原创 2024-01-28 21:31:49 · 554 阅读 · 0 评论 -
算法(基础)
算法基础排序滤波哈夫曼编码与译码排序滤波几种常用的滤波算法卡尔曼滤波哈夫曼编码与译码C语言实现哈夫曼编码与译码原创 2022-03-19 20:49:12 · 815 阅读 · 0 评论 -
C语言分块查找算法,索引顺序查找算法
分块查找算法,索引顺序查找算法原理介绍instance analysis原理介绍分块査找也称为索引顺序査找,要求将待查的元素均匀地分成块,块间按大小排序,块内不排序,所以要建立一个块的最大(或最小)关键字表,称为索引表。本实例中将给出的 15 个数按关键字大小分成了 3 块,这 15 个数的排列是一个有序序列,也可以给出无序序列,但必须满足分在第一块中的任意数都小于第二块中的所有数,第二块中的所有数都小于第三块中的所有数。当要査找关键字为 key 的元素时,先用顺序杳找在已建好的索引表中查出 key转载 2021-08-12 09:08:39 · 1749 阅读 · 0 评论 -
C语言二分查找算法,折半查找算法
C语言二分查找算法,折半查找算法C语言二分查找算法,折半查找算法参考C语言二分查找算法,折半查找算法#include <stdio.h>int binary_search(int key,int a[],int n) //自定义函数binary_search(){ int low,high,mid,count=0,count1=0; low=0; high=n-1; while(low<high) //査找范围不为0时执行循环体语句 {转载 2021-07-22 08:56:09 · 256 阅读 · 0 评论 -
递归算法(自调用)
递归算法-自调用递归算法(自调用)能够解决的问题instance analysis递归算法(自调用)递归算法(英语:recursion algorithm)在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。递归式方法可以被用于解决很多的计算机科学问题,因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用,在这些语言中函数可以通过调用自身来进行递归。计算理论可以证明递归的作用可以完全取代循环,因此在很多函数编程语言(如Scheme)中习惯用递归来实现循环。递归程原创 2021-07-18 22:15:17 · 708 阅读 · 3 评论 -
冒泡排序分析
冒泡排序冒泡排序思想instance analysis参考资料来源1.部分参考冒泡排序思想两次for循环,里层循环找最大值,外层循环比较次数。冒泡排序法:也叫升序排序法,但是相比起二分法查找只能应用于有序数列,二如何将一个无序数列变的有序就可以使用冒泡排序法。instance analysis#include <stdio.h>#include <stdlib.h>#define NUM_10 10void printf_data(int *data, in原创 2021-07-05 22:53:48 · 185 阅读 · 0 评论 -
数据结构和算法书籍
数据结构和算法1.数据结构和算法书籍1.数据结构和算法书籍现如今数据结构、算法优秀资料到处都是国内教材例如《数据结构与算法》–邓俊辉《并行算法》–陈国良《递归论》–莫绍揆国外的《Data Structures and Network Algorithms》–Robert Tarjan《数据结构与算法设计》–John Hopcroft《数据结构与算法–Java语言描述》–Mark Weiss《A Displine of Programming》–Edsger Dijkstra《多维与度量数转载 2021-03-10 13:52:04 · 291 阅读 · 0 评论 -
求最大公约数
求最大公约数instance analysisinstance analysis//标准APIint gcd(int v1, int v2){ while(v2) { int temp = v2; v2 = v1 % v2; v1 = temp; } return v1;}// 12 16int main(int argc, char *argv[]){ int max_num = gcd(12,16)原创 2020-11-12 21:10:43 · 349 阅读 · 0 评论 -
动态规划法
动态规划法与分治法的区别共同点:将待求解的问题分解成若干子问题,先求解子问题,然后再从这些子问题的解得到原问题的解。不同点:1、适合于用动态规划法求解的问题,分解得到的各子问题往往不是相互独立的;而分治法中子问题相互独立。2、动态规划法用表保存已求解过的子问题的解,再次碰到同样的子问题时不必重新求解,而只需查询答案,故可获得多项式级时间复杂度,效率较高;而分治法中对于每次出现的子问题均求解,导致同样的子问题被反复求解,故产生指数增长的时间复杂度,效率较低。动态规划法与贪心法的区别共同点:原创 2020-10-29 15:24:34 · 278 阅读 · 0 评论 -
快速排序
#include <stdio.h>#include <stdlib.h>void quick_sort(int a[],int low,int high){ int i,j,key;// printf("sizeof(a) = %d.\n",sizeof(a)); i = low; j = high; key = a[low]; while(i < j && a[j] > key) j --; if(i < j) a[.原创 2020-08-23 10:01:02 · 125 阅读 · 0 评论 -
记负均正II
题目描述从输入任意个整型数,统计其中的负数个数并求所有非负数的平均值,结果保留一位小数,如果没有非负数,则平均值为0本题有多组输入数据,输入到文件末尾,请使用while(cin>>)读入数据范围小于1e6输入描述:输入任意个整数输出描述:输出负数个数以及所有非负数的平均值示例1输入复制-13-4-7输出复制30.0#include <iostream>#include <iomani..原创 2020-08-03 12:36:16 · 216 阅读 · 0 评论 -
计算一个数字的立方根
计算一个数字的立方根,不使用库函数详细描述:•接口说明原型:publicstaticdoublegetCubeRoot(doubleinput)输入:double待求解参数返回值:double输入参数的立方根,保留一位小数#include<iostream>#include<iomanip>#include <cmath>using namespace std;double getCubeRoot(double y);...原创 2020-08-03 08:53:24 · 1207 阅读 · 0 评论 -
合并表数据
题目描述数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)示例1输入40 10 21 23 4输出复制0 31 23 4分析:主要是把相同的索引相加#include <iostream>#includ..原创 2020-08-02 17:06:51 · 242 阅读 · 0 评论 -
整数与IP之间的转换
题目描述原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。举例:一个ip地址为10.0.3.193每段数字相对应的二进制数100000101000000000030000001119311000001组合起来即为:00001010000...原创 2020-08-02 16:10:20 · 210 阅读 · 0 评论 -
统计每个月出生的兔子
题目描述有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?#include <iostream>using namespace std;//1 1 2 3 5int main(){ int num = 0; int mon = 0; while(cin >> mon) { int first = 1; int se原创 2020-08-02 12:20:07 · 146 阅读 · 0 评论 -
牛客网_挑7
输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数(一组测试用例里可能有多组数据,请注意处理)最大数不超过30000输入20输出3分析:主要是找出7的倍数和7的余数,7的倍数很好求,7的余数像70-79先除/10才能求余数代码:#include <iostream>#define MAX 30000using namespace std;int main(){ int num原创 2020-08-02 12:01:24 · 278 阅读 · 0 评论