- 博客(16)
- 收藏
- 关注
原创 5.1 基于循环的三基本排序:冒泡、简单选择、直接插入
差别和异同相同:对于数组类型,这三种排序都是用二重循环去实现的具体思路:冒泡:第i次循环,把第i大的数甩到数组末尾简单选择:第i循环,把第i小的数和下标i的元素交换直接插入:第i次循环,前面i个数都有序稳定性差别:在常见的排序算法里,有五种是不稳定的(不稳定:排序前是 1,1 排序后虽然还是1,1,但是第二个1原先在第一个位置上)简单选择不稳定,快堆折归(快排、堆排...
2020-03-10 18:05:01
171
原创 dijkstra算法
看更多算法的流程代码void dijkstra_main(int** test,int size,int start_pos){ if(size<=0 || test == NULL || start_pos < 1) return ; dijkstra_node* sup = (dijkstra_node*) malloc(sizeof(dijkstra...
2020-03-10 17:51:03
198
原创 图的dfs与bfs
看更多思路简介图的bfs极度类似树的层次遍历,用队列去实现。dfs则极度类似树的非递归遍历,用栈去实现。代码//-------------------我是DFS的开头------------------------------void dfs_base_matrix_init(int** data,int size){ if(data == NULL || size &l...
2020-03-10 17:46:10
193
原创 生成图
为什么要生成图在写和图有关的数据结构的算法的时候,总是需要数据的,每个用例都手动的去初始化一个二维数组或者邻接表很麻烦的。无向无权图int** init_graph_matrix(int num_spot){//由边随机生成一个无向图 int i ;int j ; i = j =0 ; srand(time(NULL)); int** data = (int**) mall...
2020-03-10 17:43:09
659
原创 层次遍历二叉树
想看更多队列简介 对于一些资源调度问题,FIFO的方法比较常用,比如操作系统的页面置换算法,在一些具体场景里(银行、医院等排队功能当然优先考虑用队列去实现了) 除此之外,队列还可以用于二叉树的层次遍历。层次遍历的想法1. 根节点加入队列2. 进入循环,出口条件是队列为空3. 出一个节点,并且把他的左右子加入队列4.可以用一个特殊的#号代表换行,最开始根和...
2020-03-10 17:37:25
195
原创 非递归先序遍历二叉树
为什么非递归?众所周知,二叉树的递归遍历 = 三行代码,那么什么要使用非递归去实现呢?1.难度高的面试、考试可能会考(比较重要)2.帮助我理解栈和递归的关系(有点重要但不是那么重要)非递归的思路所谓非递归,不过是通过使用栈去把递归的过程模拟出来罢了。栈的操作也很简单:左子能入就入左子,右子能入就入右子,没有子入就弹出。非递归的代码(先序)/*用例 1234...
2020-03-10 17:30:30
433
原创 生成一个二叉树
想看更多二叉树的简介二叉树本身的意义不重要,只学二叉树的话会觉得没什么用,因为他不像栈那样为复杂循环提供了行之有效的解决办法。学习二叉树的目的其实是为了后面的排序树、平衡树、堆等知识做准备。生成一颗二叉树生成二叉树的方式大概有两种第一种是用某种序列+#号(用来代表空指针)第二种是用中序序列 + 任意一个其他序序列 (前序、后序、层次 ,这种方法不需要用符号去代表空指针)生...
2020-03-10 17:25:37
2135
原创 表达式求值
想看更多什么叫中缀表达式?我们从小学开始学的那种算式,比如(1+2)*7 就是一个中缀表达式。当任意一个中缀表达式“加满”括号,例如:96/12+4*2 →加满括号→ ((96/12)+(4*2)) →逐步拆括号 →生成一个二叉树。这个树是有规律的:操作符号(+-*/)都在非叶子节点上,且上一层的节点后算,下一层的节点先算。对这个树进行先序遍历,所得到的序列就是前缀表...
2020-03-10 17:08:47
486
原创 栈的简介
1.栈的简介1.1 基本操作栈的基本操作:init、pop、push、get_length…,因为C本身不提供栈这种数据结构,所以需要自己手动实现,实现代码:#include "stack.h"#include "stdio.h"#include "stdlib.h"stack* initStack(int* data, int size ){ int i = 0 ; ...
2020-03-10 16:48:48
255
原创 数据结构与算法(C实现)
目录第一部分:线性表1.栈1.1栈的简介1.2 中缀表达式求值2.队列第二部分:树和图3.二叉树4.图4.1 生成图的数据4.2 DFS与BFS,递归与非递归4.3 单源最短Dijkstra第三部分:排序和查找5.排序5.1 冒泡5.2 简单选择5.3 直接插入5.4 快排5.5 二路归并6.查找6.1二分查...
2020-03-10 16:16:41
501
原创 Android.Sensor.Step_Counter应用例子
1.背景介绍: 本文将实现一个名为Step_Counter(Boolean A)的函数,功能是统计从Step_Counter(Boolean.TRUE)到Step_Counter(Boolean.FALSE)这段时间里用户的步数。 首先查阅API文档,其中关于Step_Counter的描述如下: TYPE_STEP_COUNTERA constant descri...
2018-05-02 19:49:58
2273
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人