- 博客(18)
- 资源 (2)
- 收藏
- 关注
转载 大小端
一、大端与小端的名字由来在乔纳森·斯威夫特的著名讽刺小说《格列夫游记》中,小人国内部分裂成Big-endian和Little-endian两派,区别在于一派要求从鸡蛋的大头把鸡蛋打破,另一派要求从鸡蛋的小头把鸡蛋打破。斯威夫特借以讽刺英国的政党之争,在计算机工业中指数据储存顺序的分歧。(ps:名字由来真草率!)二、概念大端模式(big endian):数据的高位字节保存在内存的...
2019-09-25 14:33:13 598
转载 内存对齐
一、什么是字节对齐?在现代计算机中,内存空间都是按照字节(byte)划分的。从理论上讲对任何类型的变量的访问可以从任何地址开始,但实际情况是,访问特定类型的变量的时候经常在特定的内存地址访问,这就需要各种类型的数据按照一定规则在空间上排列,而不是顺序地一个接一个地排放,这种所谓的规则就是字节对齐。这么长一段话的意思是说:字节对齐可以提升存取效率,也就是用空间换时间。例如:...
2019-09-25 14:15:57 137
原创 数据结构查找之二分查找(也叫折半查找)
一.折半查找的原理: 折半查找的前提是:数据是有序的;大概原理就是:对区间二分,找到数据所在的区间,然后对所在区间继续二分,不断对数据所在的区间二分,直至找到数据或者只剩一个数为止;二.程序部分: #include<iostream>using namespace std;int Search_Two(int a[],int x,...
2019-09-21 22:02:21 376
原创 数据结构排序之快速排序
一.原理: 块排的原理就是对一个待排序的数据,选择一个基准数,然后将小于它的数放在左边,大于它的数放在右边,这就凤城了左右基本有序;然后在分别对这个基准数的左边和右边进行相同的操作,直至数据完全有序。二.程序部分:#include<iostream>using namespace std;void quick_sort(int a[],int...
2019-09-21 10:09:09 170
原创 数据结构之队列
一.循环队列的顺序实现 1.1原理:借助于数组实现,原理结构如下: 1.2程序部分:struct Queue { int data[MAX]; int front, rear;};int init_Queue(Queue *s){ s->fr...
2019-09-15 21:17:21 79
原创 数据结构之栈的创建与功能实现
一.栈 1.1栈与栈功能的顺序实现 1.1.1.原理:利用结构体和数组实现栈的先进后出的功能,大概的原理就是利用top来记录栈顶,栈底就是数组的开始位置;栈结构原理图如下: 1.1.2栈与栈功能的顺序实现struct stu { int to...
2019-09-14 20:14:49 197
原创 数据结构之单链表排序
一.原理: 根据链表长度,使用冒泡排序对链表进行排序,排序过程只改变节点的数据先后顺序,不改变任何节点位置,原理图如下: 二.获得链表长度的程序int get_list_length(stu *head){ stu *p = head; int counts = 0; while (p->next...
2019-09-14 16:38:54 1284 1
原创 双向循环链表的创建、删除、插入
一.双向链表插入、删除、与创建的原理: 其实双向链表和单链表的区别主要是在节点的结构上,因为节点结构不同,进而导致相关操作较单链表也就有了一些差异;双向链表,顾名思义,从头可以到尾,由尾也可以到头;双向链表的节点如下图所示: 二.双向链表的创建: 2.1. 创建原理: 原理就不多赘述,和单链表的创建基本相...
2019-09-14 15:45:21 1258
原创 数据结构之链表-链表的删除、插入与反转
链表的删除 链表的插入 链表的反转 1.链表的删除 1.1链表删除的原理:就是将要删除的节点的上一个节点的指针指向该节点的下一个节点,然后把要删除的节点free掉,原理如下图: 1.2.程序部分:void Delete_list(stu *p,int data){ stu *p1 = p->next; ...
2019-09-10 16:04:48 532
原创 数据结构之链表-链表的创建
一.链表创建原理:链表的核心是指针,它是借助结构体和指针实现数据的存储和节点的指向,主要开辟在堆区;原理如下图: 链表的节点是一个带指针的结构体,它的数据区是用来存数据,指针用来指向下一个节点,通过指针是否指向NULL来判断链表是否结束,链表在堆区开辟,地址可能是连续的,也有可能是不连续的,所以要用到指针来存储几点的地址;二.头插法...
2019-09-10 11:20:38 2178
原创 数据结构之排序-归并排序
一.归并(2路归并)排序的原理(递归思想):就是不断的对待排序的数据进行拆分,拆分到单个数据为止,然后对拆分的数据进行两两排序合并,直至排序完成;拆分与合并原理图如下: 二.原理图解析: 第一次拆分是将整组数据一分为二; 第二次拆分先讲将左边一般拆分为一个数据和两个数据; 第三次拆...
2019-09-10 10:29:11 346
原创 数据结构之排序-堆排序
一.堆排序原理:堆排序是基于完全二叉树的选择排序,将二叉树排序为顶堆(大顶堆或者小顶堆),然后将堆顶的元素(也就是最值)交换到指定位置,循环构建顶堆与交换这两个过程直至排序结束;原理如下图:二.顶堆名词的解释:就是二叉树中所有父结点的值大于或者小于孩子节点的值; 对一个杂乱数据构建大顶堆,得从最下面一个有孩子的节点开始,一般从n/2i...
2019-09-10 00:48:01 1679
原创 数据结构之排序-希尔排序
一.希尔排序的原理:希尔排序是插入排序的基础上做了一个优化,原理就是从大步长的插入排序到步长为1的插入排序,前面的大步子插入排序是为后面的步长为1的插入排序做铺垫。原理如下图: 第一次的步长为step=step/3+1=3;比较array[step]与array[step-step]=array[0],确定array[step]在插入array[0]的位置; ...
2019-09-09 15:19:10 242
原创 数据结构之排序-插入排序
一.插入排序原理:简单讲就是从待排序的第二个数开始和前面的数比较,比较出当前数据应该在前数(包括前几位)的还是后;如此比较定位实现排序,原理图如下: 第一次插入排序结果:6,8,10,5,9,7:第二次插入排序结果:6,8,10,5,9,7;第三次插入排序结果:5,6,8,10,9,7;第三次排序选定定位数是5,5...
2019-09-09 14:26:26 268
原创 数据结构之排序---选择排序
一.选择排序的原理:每一次循环都会选择一个最值,放在固定的位置,直至循环结束;原理图如下: 第一次选择排序:将第一个数与余下的数比较,获得最值下标为Max_index = 2;与尾排序好的首位交换:所以低依次排序结果为:10,6,8,5,9,7第二次选择排序:初始Max_index = 1;,获得最值下标为Max_index = 4;与尾排序好的首位交换:所以低依...
2019-09-09 13:45:04 210
原创 数据结构之排序-冒泡排序
一.冒泡排序的原理:逐个相邻元素相互比较,将最大或者最小的值冒泡(沉底)到最高位;如下图: 第一次排序的结果为:9,5,10,7,6,8,2,4,11;第二次排序的结果为:5,9,7,6,8,2,4,10,11;第三次排序的结果为:5,7,6,8,2,4,9,10,11;第四次排序的结果为:5,6,7,2,4,8,9,10,11;...
2019-09-09 12:55:30 2255
原创 C语言版学生成绩管理系统(包括本地信息保存,供参考)
#pragma warning(disable:4996)#include<stdio.h>#include<iostream>#include<string>using namespace std;typedef struct student{ char name[20]; char sex[10]; float chine...
2019-04-24 16:41:05 1234 1
原创 深度学习入门案例之——手写体数字识别
我使用的IDE是pycharm,深度学习框架是Tensorflow。如果你的电脑的显卡是N卡,且支持加速,可以装一个gpu版tensorflow,如果不支持加速,则可以装一个cpu版tensorflow。一. cpu-tensorflow安装: 这里我简单讲一下cpu版tensorflow的最直接明了的安装方法,gpu版自行百度。首先下载一个anaconda,尽量就安...
2019-03-15 16:58:57 3653 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人