
算法
陈建江!
上善若水,水善利万物而不争。
展开
-
数据结构平衡二叉树(AVL)调整——超级简单
原创 2020-09-24 23:29:48 · 316 阅读 · 2 评论 -
数据结构回顾——排序
要求:掌握算法思想,性能分析,代码实现注:本文默认递增排序一,排序的基本概念1,什么是排序:将一个没有顺序的数列进行重新排列是它成为一个递增(递减)序列2,稳定性:如果数列中有两个元素的值是相等的,排序后他们的相对位置没有发生改变,就认为该排序算法稳定。3,内部排序:指排序期间元素全部存放在内存中的排序 外部排序:排序期间元素无法全部同时存放在内存中,必须在排序过程中根据要求不断在内,外存之间进行移动二,直接插入排序插入排序:每次将一个待排序的序列插入到一个前...原创 2020-07-24 15:37:47 · 393 阅读 · 0 评论 -
数据结构3——栈和队列
一,栈的基本概念栈:只允许在一端进行插入或者删除操作的线性表栈顶top:线性表允许插入删除的那一端栈底bottom:固定的,不允许进行插入删除的一端特点:后进先出二,栈的定义和基本操作注意:初始化时,第一个元素,默认储存了数组首地址#include<stdio.h>#include<stdlib.h>#define MaxSize 50typedef int Elemtype;typedef struct seqStack{//顺序栈 .原创 2020-07-12 17:22:41 · 225 阅读 · 0 评论 -
数据结构算法练习2——链表
1,设计一个递归算法,删除不带头节点的单链表L中所有值为x的节点void Del_X(LinkList &L,Elemtype x){ LNode *p;//p指向待删除的节点 if(L==NULL) return; if(L->data==x){//如果找到节点值为X的元素 p=L;//将L的引用传给p ,用来删除 L=L->next;//进入上个节点 free(p);//删除节点,因为p为L的引用,是对原链表进行操作,因此不会断链 Del_X(L原创 2020-07-10 15:02:38 · 1663 阅读 · 0 评论 -
数据结构2——链表
1,为什么引入链表?由于顺序表的插入,删除需要移动大量的元素,影响了运行效率。因此引入了线性表链式存储。逻辑上相邻的元素不要求物理地址也相邻,通过链来建立数据元素之间的关系2,链表的定义...原创 2020-07-09 18:11:17 · 211 阅读 · 0 评论 -
数据结构算法练习1——顺序表
1.从顺序表中删除具有最小元素(假设唯一)并由函数返回被删除函数的值,空出的位置由最后一个元素填补,如果顺序表为空显示出错信息并退出运行。思想:遍历顺序表,找到最小值的位置,将末尾元素保存到此次,删除末尾元素bool Del_Min(sqList &L,ElemType &value){ if(L.length==0)//如果表为空,直接返回 return false; value=L.data[0];//value用来记录最小值 int flag=0;//flag用来原创 2020-07-08 21:10:40 · 1593 阅读 · 0 评论 -
最简单的队列
一。什么是队列:队列(Queue)是一种只允许在一端插入数据(入队),而另一端删除数据(出队)的线性表。插入数据的端口叫队头(head),另一端叫队尾(rear),特点:先进先出(先入队的就先出队)...原创 2019-08-07 23:41:00 · 2453 阅读 · 0 评论 -
最简单的栈
一。什么是栈(stack)stack是一种特殊的线性表,是一种只允许在表的一端进行插入操作或者是删除操作的线性表(现实生活中的拿取盘子,在一叠盘子的上方选择拿和取)特点:后进先出二。栈的基本操作:初始化栈InitStack(),构造一个空栈判断一个是否为空IsEmpty(s)销毁张DestroyStack(s)进栈操作Push(s,x)退栈操作Pop(s)读取栈顶元素GetTo...翻译 2019-08-05 13:40:28 · 2444 阅读 · 0 评论 -
最简单的快速排序
一,快速排序是什么:快速排序(Quicksort)是对冒泡排序的一种改进,将相邻交换改成跳跃式互换。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。二,快速排序原理:现...原创 2019-08-04 18:25:10 · 2825 阅读 · 0 评论 -
最简单的冒泡排序
一、冒泡排序是什么:冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。二、原理:依次比较相邻的两个数,如果顺序错误就将两个数顺...原创 2019-08-04 12:40:25 · 2998 阅读 · 0 评论 -
最简单的桶排序
问你一个问题:现在有3 6 1 5 3 7 六个数字,你怎么把它们从小到大排序呢?你肯定是找到最小的1拿出来,接着是3,。。。。一直到7对吧!桶排序过程:1。准备桶:你得确定你排序的数字在哪个区域,比如说你要排序的数字中最大的是100那你就得准备一个a[101]的数组,这里就有102个桶了2。排序:你要对3 6 1 5 3 7 六个数字进行排序,首先取出第一个数3放到a[3]这个桶...原创 2019-07-21 17:45:18 · 924 阅读 · 0 评论