51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#数据结构与算法
数据结构——队列和栈
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除(出队)操作,而在表的后端(rear)进行插入(入队)操作。栈又名堆栈,它和队列一样也是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。与先进先出队列相比,栈的运作模式是后进先出。栈和链表属于线性表...
IT猿
·
2020-03-27
数据结构
队列
数据结构——链表
链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。节点维护变量data和next,分别用于存储数据和指向下一个节点。C#:classNode<T>{privateTdata;privateNode<T>next;publicTDat...
IT猿
·
2020-03-27
数据结构
链表
数据结构——数组
数组是程序中最常见的数据结构,它可以存储一个固定大小的相同类型元素的顺序集合(强类型语言)。数组的元素都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素,通过索引可以非常容易找到某一个元素。 大多数时候我们需要使用一个大小可变的数组(C#、Python中的list),本文就基于数组来实...
IT猿
·
2020-03-27
数据结构
数组
[算法天天练]堆排序
#include<iostream>#include<algorithm>usingnamespacestd;voidHeapAdjust(int*a,inti,intsize)//调整堆{intlchild=2*i;//i的左孩子节点序号intrchild=2*i+1;//i的右孩子节点序号i...
IT猿
·
2020-03-27
算法
天天
排序
[转][算法天天练]堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最...
IT猿
·
2020-03-27
算法
天天
排序
[算法天天练]选择排序法
#include<stdio.h>voidshow(intarr[],intlength){for(inti=0;i<length;i++){printf("%d",arr[i]);}printf("");}void_swap(int*a,int*b){inttmp=*a;*a=*b;*b=tmp;}...
IT猿
·
2020-03-27
算法
天天
选择
排序
[算法天天练]插入排序算法
#include<stdio.h>voidshow(intarr[],intlength){for(inti=0;i<length;i++){printf("%d",arr[i]);}printf("");}voids_insert(intarr[],intlength){if(length<0...
IT猿
·
2020-03-27
算法
天天
插入
排序
[算法天天练] 归并排序
要实现归并排序递归方法:第一步:先将原来的数据表分成排好序的子表,然后调用合并函数对子表进行归并,使之成为有序表例如有如下向量:⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾25,10,7,19,3,48,12,17,56,30,21/25,10,7,19,348,12,17,56,30,21//25,107,19,348,12,1756,3...
IT猿
·
2020-03-27
算法
天天
归并
排序
[算法天天练]快速排序
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,作为面试题来考试。该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。以一个数组作为示例,取区间第一个...
IT猿
·
2020-03-27
算法
天天
快速
排序
【转帖】常见的排序算法
总结一下常见的排序算法。 排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序期间全部对象个数太多,不能同时存放在内存,必须根据排序过程的要求,不断在内、外存之间移动的排序。内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排序、归并排...
IT猿
·
2020-03-27
转帖
常见
排序
算法
[算法天天练]冒泡排序
/**冒泡排序*核心原来:每次比较两个相邻的元素,如果它们的顺序不符合要求就把它们交换*每趟只能确定一个数归位*冒泡算法的时间复杂度为O(N*N),除了名字有点儿意思外,确实效率不高*/voidBubbleSort(intarray[],intlength){ inttmp; for(i=0;i<length...
IT猿
·
2020-03-27
算法
天天
冒泡
排序
[算法天天练]桶排序
【问题】:如果有一组数据a[]={0,9,2,3,4,5,3,5,2,8},对它进行从小到大的顺序排列 #include<stdio.h>voidBucketSort(){inti,j;inta[]={0,9,2,3,4,5,3,5,2,8};intb[10]={0};intiaSize=size...
IT猿
·
2020-03-27
算法
天天
排序
[算法天天练]关于单链表的操作有环无环判断
#include<stdio.h>#include<stdlib.h>//有环链表的各种函数测试typedefstructNode{intdata;structNode*next;}Node;typedefstructNode*LinkList;/*链表初始化*/intInitList(Link...
IT猿
·
2020-03-27
算法
天天
关于
单链表
操作
[算法天天练]
双向链表是比较常见的,主要是在链表的基础上添加prev指针,闲话少说直接上代码吧(这个也是网上一个大神的思路,真心不错,条理清楚,逻辑缜密)主要也是为了学习,贴上我所调试成功的代码(Linux环境下)双向链表代码:1#include<stdio.h>2#include<stdlib.h>34ty...
IT猿
·
2020-03-27
算法
天天
最短路径之Floyd算法
Floyd算法又称弗洛伊德算法,也叫做Floyd'salgorithm,Roy–Warshallalgorithm,Roy–Floydalgorithm, WFIalgorithm。Floyd算法是一种在有权图中(有确定的非负的权值,不能存在环路)查找最短路径的算法。该算法的一次简单执...
IT猿
·
2020-03-27
最短
路径
Floyd
算法
首页
上一页
...
126
127
128
129
130
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他