程序
一只奔跑的菜鸡
这个作者很懒,什么都没留下…
展开
-
VC++6.0写动态库
网上的资源很多,但是我搜了一天看得头昏脑胀,对第一次接触动态库的新人来说太不友好了,所以在我终于弄懂了一丢丢的时候决定我也来写一个,希望能帮到一些朋友。首先动态库的作用大家可以去看其他人写的博客之类的,已经讲的很清楚了,我接触这个是因为我需要改进某个程序里的一小部分,但是由于某种原因不能把某个程序的代码全部拷出来,所以只能用动态库。我的理解就是进行封装,把不方便给别人看的代码部分封装起来,通过.dll和.lib文件让别人去调用进而在需要改进的部分上进行更改。用VC++6.0创建动态库也有好几种类型,原创 2020-08-21 15:23:49 · 1189 阅读 · 0 评论 -
sqrt和sqrtm在矩阵运算中的区别
sqrt是矩阵内每一个元素对应开平方,即H=[a,b;c,d],则sqrtm是矩阵开平方,即P=A*A,则sqrtm(P)=A例如:a=[1,4;9,16];sqtr(a)=[1,2;3,4];sqrtm(a)=[0.4662 + 0.9359i,0.8860 - 0.2189i;1.9935 - 0.4924i,3.7888 + 0.1152i]...原创 2020-03-30 10:28:01 · 8432 阅读 · 0 评论 -
matlab创建随机数(randn和rand和randi)
randn和rand和randirand生成均匀分布的伪随机数,分布在(0,1)之间,例如rand(m)生成m行m列的均匀分布的伪随机数,rand(m,n)生成m行n列的均匀分布的伪随机数,rand(m,n,’double’)生成指定精度的伪随机数,参数也可以为single;randn生成标准正态分布的伪随机数,均值为0,方差为1;randi生成均匀分布的伪随机整数,randi(ima...原创 2020-03-26 10:16:48 · 1433 阅读 · 0 评论 -
引用形参、指针形参的使用
引用形参可以改变主函数内的实参值#include<iostream>using namespace std;int change1(int a,int b) //a、b为变量,不改变主函数内的实参值{ int c; c=a; a=b; b=c; return 0;}int change2(int &a,int &b) //a、b为引用{...原创 2020-02-23 21:47:21 · 936 阅读 · 0 评论 -
C++中的int*、int**、int&、int*&、int *a[]、int(*a)[]
技巧:先找到声明符a,被括号括着,先看括号内的(优先级高),然后向右看,有[]说明a是个数组,再向左看,有*说明是指针,有&说明是引用,再向左看,是int或者int *或者int &类型int a; //a是一个int型变量int *a; //a是一个指向int型变量的指针int **a; //a是一个指向一个指向int型变量指针的指针...原创 2020-02-23 21:32:34 · 2803 阅读 · 1 评论 -
C++指针的最简单应用
这里的代码给出了怎么去理解指针,指针指向的是数据的地址,二级指针指向的是指针的地更改指针的值不改变原数据,代码注释非常详细,能够比较容易理解指针的简单应用。#include<iostream>using namespace std;int main(){ int a=10; int b=100; int *p1=&a; //指针p1指向对象a int ...原创 2020-02-23 21:06:38 · 213 阅读 · 1 评论 -
排序系列七:计数排序
计数排序应该是所有排序方法里面最简单的了,代码也很简单易懂//计数排序是一个非基于比较的排序算法,优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),//快于任何比较排序算法。当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序//基本思想是对于给定序列中的每一个元素x,确定该序列中值小于x的...原创 2019-05-30 14:17:37 · 119 阅读 · 0 评论 -
排序系列六:归并排序
这个排序有点费脑子,大家还得花时间好好看看归并排序原理如下图所示:代码如下://归并排序(mergesort):建立在归并操作上的采用分治法的一种有效的排序算法,将已有序的子序列合并,得到完全有序的序列;//即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。//一般来说从单个元素开始合并,逐渐合并成大的元素,最终,达到整个元素有序的目的。...原创 2019-05-29 21:50:57 · 236 阅读 · 0 评论 -
排序系列五:堆排序
上代码咯//堆排序指利用堆这种数据结构所设计的一种排序算法。至于堆,大家可以先去百度一下堆是个什么东西,我这里主要放大家最需要的代码hhh//堆是一个近似完全二叉树的结构,分为“最大堆or大根堆or大顶堆”(根节点值大)和“最小堆”。通常最大堆用来升序,最小堆用来降序//以升序为例,就是把待排序的一堆无序的数a[n],整理成一个大根堆。一般从最后一个非叶子结点开始(此结点为n/2-1),...原创 2019-05-29 15:11:06 · 143 阅读 · 0 评论 -
排序系列四:快速排序
代码如下://快速排序(quicksort):首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它左边,//所有比它大的数都放到它右边,这个过程称为一趟快速排序。#include <iostream>void quicksort(int a[],int left,int right){ int p=left; int t=a[le...原创 2019-05-28 23:14:05 · 137 阅读 · 0 评论 -
排序系列三:插入排序&希尔排序
具体见代码://插入排序(insertionsort)的原理是从左往右一个个数字做为值插入左边已从小到大排好序的数字之中,即每次插入的值都与左边的值从左向右进行比较//当遇到比其大的值时就可以停止此次插入,进行下次插入。//按需要比较的最多的次数,应该是(n^2-n)/2次,在n很大时相当于n^2,故O(n^2)#include<iostream>int main()...原创 2019-05-28 11:51:49 · 172 阅读 · 0 评论 -
排序系列二:选择排序
不多说,直接放代码选择排序(Selection sort)工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。一共需要比较(n^2-n)/2次,在n很大时相当于n^2,故O(n^2)。选择排序的比较次数是最多的,为什么还会有选择排序呢?因为它...原创 2019-05-28 11:47:29 · 107 阅读 · 0 评论 -
排序系列一:冒泡排序以及改进
最近想要重新学学C++的算法,就从排序开始搞了。接下来会更新各种排序的代码,代码绝对是可以成功运行的,直接复制粘贴就OK,欢迎大家关注。第一篇肯定就是冒泡排序(bubblesort)了,注释可以说是很详细了,特别适合初学者。//冒泡排序原理为相邻两个数互相比较,然后将较大的数放在右边,然后继续向右进行比较,最后把最大的数放在整组数的最右边//然后循环,再将前n-1个数继续上面的排序,最...原创 2019-05-28 11:36:10 · 197 阅读 · 0 评论 -
数组指针的使用
在看C++ Primer的时候感觉数组指针和指针数组有点意思,在这里就稍微写一下,//int *a[10] :指针数组,数组a里存放的是10个int型指针:先找到声明符a,然后向右看,有[]说明a是个数组,再向左看,是int *,说明数组中的每个元素是int *。所以这是一个存放int指针的数组。//int (*a)[10] :a是数组指针,指向一个数组,此数组有10个int型元素:先找到...原创 2019-05-27 09:44:52 · 364 阅读 · 0 评论 -
高斯列主元消去法解线性方程组
最近在看惯导的东西,然后想要用C++解惯导控制方程,然后就重头把C++解方程组这方面的知识回顾了一下,首先就是高斯列主元消去法,这个方法还算实用,这里以3*3的矩阵为例,里面注释很详细,各位小白可以参考参考hhh//顺序高斯消去法求线性方程组的解 AX=B,A为系数矩阵,B为常向量矩阵,X为矩阵的解//为了减小误差,采用列主元消去法,从第k列的a[k][k]及其以下的各元素中选取绝对值最...原创 2019-05-26 22:00:02 · 4235 阅读 · 0 评论