![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
常见算法记录
Jason_str
>
展开
-
C++---template <typename T>
摘自https://www.cnblogs.com/cs1003/archive/2012/08/22/2651175.html这个东西可以理解成一个模板,根据你所需要的类型就行匹配比如求最小值,要int,double,char,那么你就 要写三个函数int sum(int, int);float sum(float, float);double sum(double, double);但是用这个模板就只用写一个函数了#include<iostream>#inc原创 2020-09-19 20:43:11 · 197 阅读 · 0 评论 -
使用联合体判断大小端模式
1)联合体的概念和特征:union维护足够的空间来存放多个数据成员中的“一种”,而不为每一个数据成员都配置空间,在union中所有的成员共用同一个空间,同一时间只存储一个数据成员,最大的特征就是所有的数据成员具有相同的起始地址即联合体的基地址。2)计算机中字节存储主要有两种:大端模式(Big_endian)和小端模式(Little_endian),从英文名字上可以明白,大端模式是从低地址开始,高位结束,(即高地址存地位,低地址存高位);小端模式是从高地址开始,低地址结束(与大端相反,)。3)利...原创 2020-09-13 10:59:16 · 1928 阅读 · 0 评论 -
排序之交换排序01冒泡排序以及改进
交换排序之冒泡排序时间复杂度:最好情况: 最坏情况: 平均情况:空间复杂度:稳定性原创 2020-09-08 16:08:54 · 218 阅读 · 0 评论 -
排序之插入排序03希尔排序
前面的直接插入排序和折半插入排序在基本有序的时候,效率最高,在待排序的记录比较少的时候效率较高.个人觉得希尔排序刚好针对上面俩个问题,通过大间隔排序使整体基本有序,从而使得排序效率变高了之前的插入排序可以分为通过比较寻找插入位置,通过将插入位置后的元素后移,然后将元素插入有序序列中,但是每次只能移动一次,a[j+1] = a[j],希尔排序和前面俩种插入排序不一样的是比较一次会移动一大步(len)基本思想:先将整个待排序的序列分割成若干个子序列,分别进行直接插入排序(间隔不为1 ),每...原创 2020-09-08 10:07:43 · 108 阅读 · 0 评论 -
排序之插入排序02二分法插入排序/折半插入排序
查找插入位置j时可以和之前一个一个找不同,采用二分法来查找插入的位置。对于有序的序列,不从后往前比较,用中间位置mid=(low+high)/2的值和tmp比较。找到后,依次将数往后移动,再将取的数据a[i]插入其中比如将元素a[i]插入前面,由于从Low到high位置的元素是有序的,于是先于mid=(low+high)/2位置处的数据和a[i]比较,如果a[i]比a[mid]处的数据小,则需要进入左边折半查找,如果比a[mid]处的数据大则需要进入mid右边折半查找。直到low==high原创 2020-09-07 20:34:31 · 272 阅读 · 0 评论 -
排序之插入排序01直接插入排序
参考B站视频https://www.bilibili.com/read/cv3285768CSDN大佬博客 https://blog.csdn.net/morewindows/category_859207.html个人理解插入排序的思想类似于扑克牌摸牌,插牌(比较大小,定位),摸牌(取数):每一步将一个待排序的对象,按照其关键字的大小,插入到前面排好顺序的适当位置,直到对象全部插入为止。所以其基本需要俩个操作,定位置 ,插入。插入排序通过定位的方法不同分为下面几种排序:顺序法定位插入位原创 2020-09-06 17:08:47 · 263 阅读 · 0 评论 -
线性表的链式存储结构
线性表的链式存储结构0_动态内存分配 先看俩个例子: char t[10] = “hi”;à可变à内存动态存储区域à数组在定义的时候在动态内存声明了相应的长度的区域,其大小取决于数组的长度,这样的”hi”是和下面不一样的è {“hi”} à {‘h’,’i’,’\0’} char *p = “hi”; à变量不可变à内存静态存储区域à”hi”是字面量是常量,不能通过”hi”=”go”来修改;指针p指向的是一个静态内存,里面的数据不能动态更改,如果指向数组则...原创 2020-05-15 21:05:42 · 1604 阅读 · 1 评论 -
题目_C_结构体内存对齐
问题:求出32bit环境下,以下机构体所占字节数答案:16字节分析: 运行测试: 在分析这个问题之前,我们先记住关于结构体内存对齐的三条原则:1_结构体变量的起始地址能够被其最宽的成员大小整除。2_结构体每个成员相对于起始地址的偏移能够被其自身大小整除,如果不能则在前一个成员后面补充字节。3_结构体总体大小能够被...原创 2020-04-28 10:43:26 · 338 阅读 · 0 评论 -
线性表-链式存储结构-单链表二级指针问题
在单链表的创建和插入过程中,我们运用了二级指针,但是这里好像用一级指针也没啥问题,就这从网上摘抄了下面笔记https://blog.csdn.net/u012234115/article/details/39717215 这是原文连接函数中传递指针,在函数中改变指针的值,就是在改变实参中的数据信息。但是这里改变指针的值实际是指改变指针指向地址的值,因为传递指针就是把指针指向变量的地址传递过...原创 2020-03-07 15:18:38 · 247 阅读 · 0 评论 -
线性表顺序存储结构
目录线性表的定义线性表的顺序存储结构顺序存储结构的插入与删除线性表的定义线性表(List): 零个或者多个数据元素的有限序列注意: 序列说明元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有,且只有一个前驱和后继,是有限的,事实上,计算机处理的对象都是有限的线性表抽象数据结构定义前面给出了线性表的定义,现在分析一下线性表...原创 2020-02-28 17:14:48 · 686 阅读 · 0 评论