自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

10号同学的博客

——算法基础思想的锻炼

  • 博客(105)
  • 资源 (6)
  • 收藏
  • 关注

原创 在一个数组中查找两个重复出现两次的数

题目如下:现有一个数组长度为n+1,里面存放有1到n-2,顺序不定,其中有两个数字出现了两次,现在要找出那两个数字。 例子A={2, 3, 1, 4, 5, 2, 4},这个数组长度为7,存放了1到5,但2和4出现了两次,程序输出2和4。方法1 蛮力查找主要思想:对于数组中的第i个数,查找i+1到末尾的所有整数,一个数如果出现了两次就可以在第一次后面找到第二次出现的数。 时间复杂度 O(n^2) ...

2018-03-14 17:08:08 7864

原创 图像旋转90度

#include #include //因为在 BITMAPFILEHEADER 结构体中 bfType 为2字节,为防止字节对齐为4字节,故强制使用2字节对齐。//详情请搜索 内存对齐#pragma pack (2)//C编译器将按照2个字节对齐 typedef unsigned long DWORD;typedef unsigned char BYTE

2017-11-18 18:46:44 906

原创 printf()输出结果

printf("123\n","456\n","789\n");的输出结果:123printf("123\n" "456\n" "789\n");的输出结果:123      456      789

2017-11-04 21:22:15 1306

原创 矩阵元素排序

算法描述:一个N*N的矩阵,调整其数据位置,让其每个位置的值大于等于右值,且大于等于下值(边界除外)#include using namespace std;#define N 3int i, j;void func(int array[][N], int n){ int array_temp[N*N]; int k = 0, temp; //二维数组转换为一维数组 f

2017-11-04 21:08:31 1193

原创 C++中产生1~100的随机数

int GetRandomNumber(){ int RandomNumber; srand((unsigned)time(NULL));//time()用系统时间初始化种。为rand()生成不同的随机种子。 RanddomNumber = rand() % 100 + 1;//生成1~100随机数 return RandomNumber;}

2017-11-04 20:31:43 55951 3

原创 类型提升

Q:unsigned a = 8;int b = -18;(转换为unsigned为2^32-18)int c = 0;unsigned d = 0;c = a + b;d = a + b;A:c = -10d = 一个很大的值(2^32-10,32位系统)类型提升,unsigned > int

2017-10-30 18:53:36 245

原创 什么是内存泄漏?野指针?悬挂指针?空指针异常?

1.Q:什么是内存泄漏?A:用动态存储分配函数动态开辟的控件,在使用完毕后没有释放,结果导致一直占据该内存单元,直到程序结束,称为内存泄漏。2.Q:什么是野指针?A:指指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为NULL避免,而只能通过养成良好的编程习惯尽力减少。成因:(1)指针变量没有初始化(2)指针被free/de

2017-10-30 18:32:05 1550

原创 函数指针作函数参数/用函数指针调用函数

1.函数指针作函数参数search_list(Node *node, void const *value, int (*compare)(void const *, void const *)){ if(compare(&Node->value,value) == 0) break;}2.用函数指针调用函数int (*p)(int, int);//定义p是一个

2017-09-23 16:54:57 988

原创 Fibonacci数列问题

算法描述:用数组来处理求Fibonacci数列问题(前20项)#include int main() { int i; int f[20] = {1, 1}; for(i = 2; i < 20; i++) f[i] = f[i - 2] + f[i - 1]; for(i = 0; i < 20; i++) { if(i % 5 == 0) printf(

2017-09-23 15:05:20 327

原创 二维数组与数组指针关系

算法描述:有一个半,3个学生,各学4门课,计算总平均分以及第n个学生的成绩#include int main() { void average(float *p, int n); void search(float (*p)[4], int n); float score[3][4] = {{65, 67, 70, 60}, {80, 87, 90, 81}, {90, 99

2017-09-23 14:56:00 462

原创 学生成绩最高分/最低分/平均分

#include float Max = 0, Min = 0;int main() { float average(float array[], int n); float ave, score[10]; int i; for(i = 0; i < 10; i++) scanf("%f",&score[i]); ave = average(score, 10); pri

2017-09-23 14:24:08 5338

原创 输出图案

#include int main() { int i, j, k; for(i = 0; i <= 3; i++) { for(j = 0; j <= 2 - i; j++) printf(" "); for(k = 0; k <= 2 * i; k++) printf("*"); printf("\n"); } for(i = 0; i <= 2

2017-09-23 14:08:30 580

原创 分数序列

#include int main() { int i, t, n = 20; float a = 2, b = 1, s =0; for(i = 1; i <= n; i++) { s = s + a/b; t = a; a = a + b; b = t; } printf("sum = %9.6f\n", s);//输出共占9列,其中有6位小数,若数值

2017-09-23 11:25:09 634 1

原创 字符串复制

#include #include int main() { char s1[80], s2[80]; int i; printf("input s2:"); scanf("%s", s2); for(i = 0; i <= strlen(s2); i++) s1[i] = s2[i]; printf("s1:%s\n", s1); return 0; }

2017-09-23 11:11:17 332

原创 将两个字符串连接起来,不要用strcat

#include int main() { char s1[80], s2[40]; int i = 0, j = 0; printf("\ninput string1:"); scanf("%s", s1); printf("\ninput string2:"); scanf("%s", s2); while(s1[i] != '\0') i++; while

2017-09-23 10:46:41 2877 1

原创 统计英文字母、空格、数字和其他字符的个数

#include int main() { char c; int letters = 0, space = 0, digit = 0, other = 0; printf("请输入一行字符:\n"); while((c = getchar())!='\n') { if (c >= 'a' && c = 'A' && c <= 'Z') letters++;

2017-09-23 10:17:31 5086

原创 数字转星期

#include int main() { //char w; //scanf("%c",&w); int w; scanf("%d",&w); switch(w) { /*case '1':printf("Monday\n");break; case '2':printf("Tuesday\n");break; case '3':printf("Wednesda

2017-09-23 09:57:06 631

原创 2或3个整数按从小到大排序并输出

问题1:由键盘输入x,y两个数,要求从小到大排序并输出#include int main() { float x, y, t; scanf("%f%f", &x, &y); if (x < y) { t = x; x = y; y = t; } printf("%6.2f, %6.2f", x, y);//占6列,有2位小数,左端补空格。小数点也占一列

2017-07-29 14:10:17 1367

原创 数字字符转换为整数

算法描述:为下面这个函数原型编写函数定义:int ascii_to_integer(char *string);这个字符串参数必须包含一个或多个数字,函数应该把这些数字字符转换为整数并返回整数。如果字符串参数包含了任何非数字字符,函数返回0。请不必担心算术溢出。算法实现:int ascii_to_integer(char *string){ int value = 0;

2017-07-29 10:42:27 1358

原创 用迭代方法计算n的阶乘

#include int main() { int val, i, mult = 1; printf("val = "); scanf("%d", &val); for (i = 1; i <= val; ++i) mult = mult * i; printf("%d的阶乘是:%d\n", val, mult); return 0; }

2017-07-29 10:25:46 9177

原创 求1+2+3+...+100

#include int main() { int sum = 0; for (int i = 1; i <= 100; i++) sum = sum + i; printf("%d\n", sum); return 0; }

2017-07-29 10:20:46 746

原创 字符串替换

算法描述:函数replace()实现将old中所有出现sub处替换为rpl子串,其余不变,最终替换结果存入news中。例如,old为“uvwabuv uvuvwx uvxw”,sub为“uvw”,rpl为“abcd”,new的结果为“abcdabuv uvabcdx uvxw”。算法实现:void replace(char *old, char *sub, char *rpl, char

2017-07-10 19:09:00 892

原创 opencv导入txt数据,画两幅图像的匹配点(像素精度)

#include using namespace cv;//-----------------------画匹配线---------------------------static Scalar randomColor(RNG& rng){ int icolor = (unsigned)rng; return Scalar(icolor&255, (icolor>>8)&255, (

2017-07-10 10:49:37 1023

原创 《C和指针》6.18.2删除子字符串

#include #define NUL '\0'#define TRUE 1#define FALSE 0/*C语言里面是没有bool(布尔)类型的,C++里面才有,这就是说,在C++里面使用bool类型是没有问题的。bool类型有只有两个值:true =1 、false=0。但是,C99标准里面,又定义了bool类型变量。这时,只要引入头文件 ,就能在C语言里面正常使用bool类型。

2017-06-03 17:41:14 417

原创 《C和指针》6.18.1匹配字符

#include char *find_char(char const*source, char const *chars){ char *p_chars; if (source == NULL || chars == NULL || source == "" || chars == "") return NULL; for (; *source != '\0'; source++)

2017-06-03 17:02:50 376

原创 const, static, extern, volatile的主要用法

const的用法:(1)定义常量(const数据成员的初始化只能在类的构造函数的初始化表中进行,且必须初始化)  (2)修饰函数的参数(常指针,常引用)  (3)修饰函数的返回值(const char * GetString(void);)  (4)修饰函数的定义体(任何不会修改数据成员的函数都应该声明为const 类型。如果在编写const 成员函数时,不慎修改了数据成员,或者调用了

2017-05-20 10:54:27 485

原创 查找链表倒数第k个节点

算法描述:给出一个单向链表的头指针(根指针),输出该链表中倒数第k个节点的指针。链表的倒数第0个节点的尾节点(尾节点的next成员为NULL)。函数find_node实现上述功能,链表节点定义及函数声明如下,请实现函数find_node。typedef struct Node{struct  Node *next;}Node;Node *find_node(Node *he

2017-05-19 19:37:52 424

原创 判断一个字符串是不是对称的

算法描述:函数checkstr判断一个字符串是不是对称的,如:“abccba”是对称的,“abccbaa”则不是对称的。函数声明如下,其中msg为输入的字符串,对称返回0,不对称返回-1,请实现该函数。int checkstr(const char *msg);算法实现:#include #define N 100int checkstr(char const *msg){

2017-05-11 19:23:09 3524

原创 3个整数中最大的数和最小的数

算法描述:有3个整数a,b,c,由键盘输入,输出其中最大的数和最小的数。算法实现:#include int main(){ int a, b, c, max, min; printf("input three int:"); scanf("%d, %d, %d", &a, &b, &c); if (a < b) { min = a; max = b; } e

2017-05-10 19:48:09 1782 1

原创 求余

算法描述:给定一个不多余5位的正整数,要求:(1)求它是几位数(2)分别打印出每一位数字(3)按逆序打印出各位数字算法实现:#include #define N 5int main(){ int n, i; int k = 0; int a[N]; printf("enter a inter:"); scanf("%d", &n); do { a[k

2017-05-04 20:10:45 560

原创 数组的数字逆序排列重新存放

算法描述:将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8算法实现:#include #define N 5int main(){ int a[N], i, temp; printf("enter array a:\n"); for (i = 0; i < N; i++) scanf("%d", &a[i]); printf("arr

2017-05-04 19:49:45 1433 1

原创 数据类型溢出

char x1 = 128;char x2 = 129;printf("%d   %d\n",x1,x2);结果为:-128  -127

2017-04-26 12:46:10 305

原创 负数在计算机中如何表示

负数以正值的补码形式存储-5在计算机中表示如下:5的原码:00000000   00000000  00000000   00000101(int占4字节)       反码:11111111   11111111   11111111   11111010      补码:11111111    11111111   11111111   11111011(0xfffffffb)

2017-04-26 10:55:38 5918

原创 两个字符串的比较

算法描述:编写一个函数,实现两个字符串的比较,即自己写一个strcmp函数,函数原型为int strcmp(char *p1, char *p2);设p1指向字符串s1,p2指向字符串s2。要求当s1= s2时,返回值为0;若s1 != s2,返回他们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79 - 65 = 14)。如果s1 >

2017-04-15 17:33:14 1168

原创 密电码

算法描述:输入一段英文,然后按照规律转换:英文字母变为其后的第5个字母,例如A变为F,B变为G,直到U变为Z后,V再变为A,以此类推,直到Z变为E。非英文字母的字符不变,直到输入换行结束。此种方法可以生成最简单的密电码。#include int main(){ char ch; do { scanf("%c",&ch); if ((ch >= 'a' && ch =

2017-04-15 17:03:57 695

原创 将用户输入的字母进行大小写转换

#include int main(){ char ch; scanf("%c",&ch); if (ch >= 'A' && ch <= 'Z') ch = ch + 32; else if (ch >= 'a' && ch <= 'z') ch = ch -32; //或者ch = (ch >= 'A' && ch <= 'Z') ? (ch + 32) : ch; p

2017-04-15 16:31:19 4478

原创 输出3~100的所有素数

质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。#include int main(){ int n, i; for (n = 3; n <= 100; n++) { for (i = 2; i <= n - 1; i++) if (n % i == 0) break; if (i >

2017-04-15 16:21:09 11440 4

原创 判断某一年是否闰年

算法描述:能被400整除,是闰年能被4整除,但不能被100整除,是闰年if((year % 4 == 0)&& year % 100 != 0) || (year % 400 == 0))     leap = 1;else     leap = 0;//或if (year % 400 == 0) leap = 1;else if(year % 100 ==

2017-04-09 11:45:03 760

转载 H.264整数DCT公式推导及蝶形算法分析

H.264整数DCT公式推导及蝶形算法分析 <div class="postBody"> <div id="cnblogs_post_body"><p><span style="font-family:宋体; font-size:12pt">这是网上的一篇文章, 我重新读了一下, 然后做了一些整理 1.为什么要进行变换

2017-03-25 17:13:33 1106

转载 HEVC中的变换编码

一、变换编码的意义:绝对大部分图像都含有较多的平坦区域内容变化缓慢的区域,变换可以使图像能量在空间域的分散分布转为在变换域的相对集中分布,就可以达到去除空间冗余的目的二、HEVC使用了DCT和DST(只用于4x4的小块)两种变换,为了加快速度,还会使用Hadamard算法(HEVC标准中没有使用,但是自己的具体实现可以使用)。二维DCT可以分成两个一维的DCT变换。

2017-03-25 17:08:39 1803

语音识别理论知识及应用

这几个文档都是比较经典的,讲解语音识别的原理,通俗易懂,kaldi的使用也讲的很详细,奉献出来,免得大家走弯路。

2019-12-24

Ubuntu下Kaldi安装手册_JuZhang.pdf

当初刚学kaldi时,搜集的一篇kaldi在Ubuntu上编译的文档,很实用,照着做就能在Ubuntu上编译通过kaldi。

2019-12-24

Building of Kaldi VS2015 Project on Windows - _番_茄_炒_蛋_ - CSDN博客.pdf

本文在Kaldi已有的Windows VS工程及其编译流程说明的基础上,更新有问题的子模块,并添加对VS工程的适配代码,确保Kaldi VS工程在windows平台上编译通过及online-wave-gmm-decode-faster 解码程序 的正常运行。这是转载的一篇,文档中有说明,如有更深问题,请找原作者。

2019-12-24

语音识别算法原理文档整理.docx

包括语音识别算法原理介绍,语音识别系统kaldi的使用。算法原理讲解透彻,流程清晰,kaldi使用步骤清楚。主要是自己不做这一块了,所以分享出来。

2019-12-24

kaldi基础知识.docx

包括语音识别的原理,数据准备,特征提取与变换,声学模型,语言模型,训练与解码,在线识别,语音识别评估标准,专业名词解释。

2019-12-24

kaldi安装.docx

Kaldi是一个非常强大的语音识别工具库,主要由Daniel Povey开发和维护。目前支持GMM-HMM、SGMM-HMM、DNN-HMM等多种语音识别的模型的训练和预测。

2019-12-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除