- 博客(15)
- 收藏
- 关注
转载 排序算法稳定性比较——转载
(1)冒泡排序冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无聊地把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换把两个相邻起来,这时候也不会交换,所以相同元素的前后顺序并没有改变,所以冒泡排序是一种稳定排序算法。(2)选择排序选择排序是给每个位置选择当前元素最小的...
2018-12-28 11:23:46 174
转载 拓扑排序概念
拓扑排序,顾名思义,就是一种排序方法。这是一种什么排序?这种排序的作用?然后怎么去实现这种排序算法?现在就让我们仔细研究下。1、什么是拓扑排序,也就是拓扑排序的概念实际上,拓扑排序是一种图论算法,该算法在《数据结构与算法》一书中有涉猎。引用维基百科的定义:在图论中,由一个有向无环图的顶点组成的序列,当且仅当满足下列条件时,称为该图的一个拓扑排序(英语:Topological sorti...
2018-12-27 22:43:41 3721 1
转载 树 二叉树 森林的转换
1、树转换为二叉树由于二叉树是有序的,为了避免混淆,对于无序树,我们约定树中的每个结点的孩子结点按从左到右的顺序进行编号。将树转换成二叉树的步骤是:(1)加线。就是在所有兄弟结点之间加一条连线;(2)抹线。就是对树中的每个结点,只保留他与第一个孩子结点之间的连线,删除它与其它孩子结点之间的连线;(3)旋转。就是以树的根结点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。...
2018-12-27 21:55:18 562
转载 中缀转前后缀表达式
一个中缀式到其他式子的转换方法: 这里我给出一个中缀表达式a+b*c-(d+e) 第一步:按照运算符的优先级对所有的运算单位加括号,式子变成:((a+(b*c))-(d+e)) 第二步:转换前缀与后缀表达式 前缀:把运算符号移动到对应的括号前面 则变成:-( +(a *(bc)) +(de)),把括号去掉:-+a*bc+de 前缀式子出现 后缀:把运算符号移动到对应的括号后面 则变成...
2018-12-26 17:07:50 475
转载 typedef与结构体
在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是struct Student的别名。Stu==struct Student ...
2018-12-24 14:52:23 2994 2
转载 归并排序---图解
一张图看懂归并的定义:将两个或两个以上的有序表组合成新的有序表#include "stdio.h"#include "malloc.h"#include <string.h>#include<cstdlib> #define OK 1#define ERROR 0#define MAXSIZE 100 typedef int Status;...
2018-12-11 23:39:46 177
转载 堆排序--图解
大堆顶 小堆顶构造堆在构造有序堆时,我们开始只需要扫描一半的元素(n/2-1 ~ 0)即可,为什么?因为(n/2-1)~0的节点才有子节点,如图1,n=8,(n/2-1) = 3 即3 2 1 0这个四个节点才有子节点 所以代码...
2018-12-11 23:17:09 400
转载 Python Random模块--实例说明
random.seed(x)#产生随机数时,需要提供一个基础数然后根据此季楚书产生伪随机数#random.seed(x)可以让你提供基础数,需要你手动调用random.seed(x)#如果没有手动调用random.seed(x),则系统默认使用系统时间为基础数random.randint(n,m)#生成n,m之间的随机整数int,结果∈[n, m)#n和m必须都是整数,且a>...
2018-12-09 12:51:54 4007 1
转载 抽象类和接口
抽象类和接口的区别以及使用场景(记) 抽象类和接口的区别以及使用场景记 相同点 不同点 interface的应用场合 abstract class的应用场合 1. 相同点两者都是抽象类,都不能实例化。 interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法。2. 不同点 interface需要实现,要用impleme...
2018-11-14 17:12:35 86
翻译 数据结构--循环队列解决约瑟夫问题(纯c)
#ifndef __JOSEPHUS_H__#define __JOSEPHUS_H__#include <stdio.h>#include <stdlib.h>#include <malloc.h>typedef int QElemType;typedef struct{ QElemType *base; //初始化动态分配储存空间...
2018-10-18 13:51:07 2683
原创 数据结构--循环队列的实现
队列基于数组的存储表示称为顺序队列。为了充分利用存储空间,将数组的前端front和后端rear连接起来,形成一个环形的表,称为循环队列。链队列即链表表示。 删除元素:front=(front+1)%Max; 添加元素:rear=x;rear=(rear+1)%Max; 判断队列是否满:if((rear+1)%Max==front) 栈满...
2018-10-18 13:48:16 216
原创 数据结构---表达式求值(栈)
#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>typedef int ElemType;#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef struc...
2018-10-14 13:06:42 20005 20
原创 数据结构----顺序栈的基本操作纯c语言
#include <stdio.h>#include <stdlib.h>typedef int ElemType;#define stack_init_size 100 #define STACKINCREMENT 10typedef struct{ ElemType *base; ElemType *top; int ...
2018-10-14 13:05:23 587
原创 java 多态的一些理解
设Employee(雇员)是超类 anager(经理)的子类 一. 可以将一个子类对象赋给超类变量 Employee staff=new Employee();Manager boss= new Manager();staff=boss; (boss是子类) 注意赋值是右传左二. 然而不能将超类的引用赋值给子类变量Employee sta...
2018-06-27 17:05:03 119
原创 c语言:13个人围成一圈,从第1个人开始顺序报号1,2,3.凡报到3者退出圈子。找出最后留在圈子中的人原来的序号。用链表处理
#include <stdio.h>#include <malloc.h>typedef struct z{ int data ; struct z *next;}zz;int remain(int n);int main(void){int num;do{ printf("Please input n:");scanf("%...
2018-05-24 15:13:12 2341
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人