java学习笔记--运算符 java运算符运算符:用来指明对于操作数的运算方式按照操作数的数目来进行分类单目运算符例如:a++双目运算符例如: a+b三目运算符例如:(a>b)?x:y (表示如果a>b为真,执行(或输出)x,否则执行y)按照运算符的功能来进行分类一、算术运算+(加),-(减),*(乘),/(除), %(取余,取模)++(自增) ,- -(自减)public class Text{ public static void main(String[] args){ int x
java学习笔记--基本数据类型 java数据类型基本数据类型一、整型(1)byte字节型所占内存:8bit(1字节)0 00000001字节(byte) = 8比特(bit)用第一个bit位置来记录符号,0表示正数,1表示负数;例如-1为 1 0000001,正1为 0 0000001。能表示整数的范围:-128 ~ 127 (-2的7次方 ~ 2的7次方 - 1)(2)short 短整型所占内存:16bit0 0000000 00000000取值范围:-32768 ~ 32767 (-2的15次方 ~ 2的15次
java学习笔记(2)--hello world java编写一段java源代码一、新建一个java文档(这里用记事本来写)首先创建一个文本:然后将文本后缀更改为.java如果不显示后缀名字,这里以我的电脑为例二、用记事本打开新建的java文件,并写入代码,并保存class Hello{ public static void main(String[] args){ System.out.println("hello world! ");}}public:访问权限修饰符。表示公有的,对所有其他的程序,以及子程序,以及包以
java学习笔记(1)--win7 java环境的搭建 java的学习笔记(一)java环境1.下载一个安装程序需下载一个jdk安装包,JDK:Java开发员的软件开发工具包。官网网址 https://www.oracle.com/java/technologies/javase-downloads.html也可以在百度上直接搜。(需根据自己电脑下载)。而 https://download.csdn.net/download/qq_43402544/13455675 这里是我在网上下载的,是根据我电脑windonws7-32位下载的。2.安装j
归并排序 C语言实现 归并排序( Merging Sort )就是将两个或两个以上的有序表合并成一-个有序表的过程。将两个有序表合并成个有序表的过程称为2-路归并,2-路归并最为简单和常用。算法思想:假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2]个长度为2或1的有序子序列;再两两归并,……,如此重复,直至得到一个长度为1的有序序列为止。书上的例子:时间复杂度O(nlog2log_2log2n)空间复杂度O(n)算法特点:1)是稳定排序。2)可用于
堆排序 C语言实现 堆排序(Heap Sort) 是一种树形选择排序,在排序过程中,将待排序的记录Data[1…n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩 子结点之间的内在关系,在当前无序的序列中选择关键字最大(或最小)的记录。时间复杂度O(nlog2log_2log2n)空间复杂度O(1)算法特点:1 ) 是不稳定排序。2 ) 只能用于顺序结构,不能用于链式结构。3 ) 初始建堆所需的比较次数较多,因此记录数较少时不宜采用。堆排序在最坏情况下时间复杂度为O(nlog2n),相对于
简单选择排序 C语言 简单选择排序(Simple Selection Sort)也称作直接选择排序。算法步骤:1) 设待排序的记录存放在数组Data[1…n]中。第一趟从Data[1]开始,通过n-1次比较,从n个记录中选出关键字最小的记录,记为Data[k],交换Data[1]和Data[k]。2) 第二趟从Data[2]开始,通过n- 2次比较,从n-1个记录中选出关键字最小的记录,记为Data[k],交换Data[2]和Data[k]。3) 依次类推,第i趟从Data[i]开始,通过 n - i 次比较,从n-i
快速排序 C语言实现 快速排序快速排序(Quick Sort )是由冒泡排序改进而得的。在冒泡排序过程中,只对相邻的两个记录进行比较,因此每次交换两个相邻记录时只能消除一个逆序。 如果能通过两个(不相邻)记录的一次交换,消除多个逆序,则会大大加快排序的速度。快速排序方法中的一次交换可能消除多个逆序。课本上的例子:时间复杂度最好情况:O(nlog2log_2log2n)最坏情况:O(n2n^2n2)平均情况:O(nlog2log_2log2n)空间复杂度O(log2log_2log2n)算法特点:1)记
冒泡排序 C语言 冒泡排序冒泡排序( Bubble Sort)是一种最简单的交换排序方法,它通过两两比较相邻记录的关键字,如果发生逆序,则进行交换,从而使关键字小的记录如气泡一般逐渐往上 “漂浮” (左移),或者使关键字大的记录如石块一样逐渐向下 “坠落”(右移)。算法步骤:(1)设待排序的记录存放在数组Data[1…n]中。首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序(即Data[1].key > Data[2].key),则交换两个记录。然后比较第二个记录和第三个记录的关键字。依次类推,直至
希尔排序 C语言实现 希尔排序希尔排序( Shell’s Sort)又称“缩小增量排序”( Diminishing Increment Sort),是插入排序的一种, 因D.L.Shell 于1959 年提出而得名。直接插人排序,当待排序的记录个数较少且待排序序列的关键字基本有序时,效率较高。希尔排序基于以上两点,从“减少记录个数”和“序列基本有序”两个方面对直接插入排序进行了改进。基本思想:先将整个待排记录序列分割成若干子序列,分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。
折半插入排序 C语言 折半插入排序 C语言直接插入排序采用顺序查找法查找当前记录在已排好序的序列中的插入位置,这个“查找”操作可利用“折半查找”来实现,由此进行的插人排序称之为折半插入排序( Binary Insertion Sort )。算法步骤:①设待排序的记录存放在数组Data[1…n]中,Data[1]是一个有序序列。② 循环n-1次,每次使用折半查找法,查找Data[ i ] ( i=2,…,n )在已排好序的序列DataI1…i-1]中的插入位置,然后将Data[ i ]插人表长为i-1的有序序列Data[1
直接插入排序 C语言实现 直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。算法步骤:(1)设待排序的记录存放在数组Data[1…n]中,Data[1]是一个有序序列。(2)循环n-1次,每次使用顺序查找法,查找Data[ ](i = 2,…,n)在已排好序的序列Data[ 1…i-1 ]中插入位置,然后将Data[i]插人表长为i-1的有序序列Data[ 1…i-1 ],直到将Data[n]插人表长为n-1的有序序列Data[ 1…n-1 ],最后
二叉排序树的创建,插入及删除 - C语言 这里的二叉排序树的创建是根据课本上写的,其中掺杂了递归思想,之前的写的二叉树的创建是为非递归的方法https://blog.csdn.net/qq_43402544/article/details/109228383。完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct//关键字结构体 { int key;//关键字项 int otherinfo;//
线性表的查找 C语言 还是书上的内容。(1)折半查找我这里先写折半查找(又名二分查找),是一种效率较高的查找方法,就是有个前提,查找数据的前提是数据本身是从小到大的有序排列的。只适用于有序表。时间复杂度为:代码如下:int SearchList3(SSTable ST,int key)//折半查找(二分查找),前提必须是从小到大的有序排序 { int mid, low = 1, high = ST.length;//初始化完成 while(low<high) { mid = (low+high
图的关键路径 C语言 还是按照书上给的例子:图的关键路径必须了解的(以下都是自己理解的):(1)AOE-网:带权值的AOV-网。(AOV-网是不带权值且没有回路的有向图)(2)Ve(i):顶点V(i)的最早发生时间。这里开始只知道图的源点Ve(0)的值,初始点顶点Ve(0)为0,Ve(i)的值便是从V(0)开始沿着各种路径到达顶点V(i)的最长路径。例如:图中V(0)有两种路径到达V(4)选择最长的那条,故Ve(4) == 7。(3)Vl(i):顶点V(i)的最迟发生时间。只有求出所有Ve(i)才能开始求Vl(i),这
有向图的拓扑排序 C语言 这里使用我随便画的例子:这种用顶点表示活动,用弧表示活动间的优先关系的有向图称为顶点表示活动的网(Activity On Vertex Network),简称AOV-网。按照我的理解是:AOV-网是不带权值且没有回路的有向图。完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MVNum 100 //最大顶点数 #define MAXSIZE 100 //最大栈容量
有向图的最短路径--弗洛伊德算法 C语言 这里有点懵!还是按书上的例子(这里用邻接矩阵表示)完整代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define MaxInt 32767//无穷值设置 #define MVNum 100 //图的最大容量 ,也可以称为图的最大顶点数 void Interrupt(void)//创建一个中断函数 { while(1)//用于检测换行符,使函数脱离scanf的连续输出