数据结构与算法(Java描述)-1、数据结构与算法总述以及抽象数据类型

之前在学校就已经学习过数据结构,但那时都是用C语言来描述的,现在本着复习的目的,结合平时收藏的笔记,重新用Java来描述一下!一起学习,一起进步!(不是大牛,如有错误,还请指正!)

一、什么是算法?

算法:Algorithm,是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或者多个操作。  

二、算法的特性

1、有穷性:指令序列是有限的

2、确定性:每条语句的含义明确,无二义性

3、可行性:每条语句都应在有限的时间内完成

4、输入:零个或者多个输入

5、输出:一个或者多个输出 

三、算法与程序的区别

程序:(program)程序是软件开发人员根据用户需求开发的、用程序设计语言描述的适合计算机执行的指令(语句)序列。

程序四要素:数据结构、算法、程序设计方法、编程语言

区别:

程序与算法不同。程序是算法用某种程序设计语言的具体实现。程序可以不满足算法的有穷性,比如操作系统也是一种程序,

如果你愿意,你的电脑可以一直开着,保持操作系统的运行。如:

         while(true){
   
         }//是一段程序,但不是一个算法
四、程序、算法、软件之间的关系

程序:算法的计算机实现。用某种编程语言实现。

算法:表示问题的解。

软件:程序+文档

五、数据类型

数据类型:是指一个值的集合和定义在集合上的操作集合。例如:java的整数类型(Integer),就不仅仅表示整数数值的集合,还包括

对整数类型进行的操作集合,加、减、乘、除、取模等运算!我们通常所指的数据类型是某种高级语言支持的基本数据类型。

Java中的基本类型:int、double、float、char等等。

抽象数据类型:一个数学模型以及定义在这个模型上的一组操作。

看起来抽象数据类型和数据类型的定义基本相同。不同点在于:数据类型通常是指某种高级语言的,而抽象数据类型用户重新

设计,一种概念。这里的"抽象"的含义在于数学抽象。

可大致分为这几类:

1、原子类型:比如整型

2、固定聚合类型:比如复数,两个实数确定的次序构成

3、可变聚合类型:比如汽车类型,构成的成分是不确定的。(因为小轿车、大卡车的构成是不同的)

抽象数据类型抽象的层次越高,那么可复用性也越高。比如:java中的Object是对所有对象的抽象,那么就可以作为所有类的

父类。举个栗子:用Java语言定义学生抽象数据类型

public class Students {
	//学生的id
	private int id;
	//学生的姓名
	private String name;
	//学生的性别
	private char sex;
	//学生的联系方式
	private String phone;
	//学生的地址
	private String address;
	
	//无参的构造方法
	public Students() {};
	
	//五个参数的构造方法
	public Students(int id,String name,char sex,String phone,String address) {
		this.id=id;
		this.name=name;
		this.sex=sex;
		this.phone=phone;
		this.address=address;
			
	}
	//打印学生信息
	void printStudentsInfo() {
		System.out.println(id);
		System.out.println(name);
		System.out.println(sex);
		System.out.println(phone);
		System.out.println(address);
	}
	
	public static void main(String[] args) {
		Students stu=new Students(1,"张三",'男',"18267572266","陕西省西安市.....");
		stu.printStudentsInfo();
	}
	
	public String toString() {
		return this.id+"  "+this.name+"  "+this.sex+this.phone+"  "+this.address;
	}
}

猜你喜欢

转载自blog.csdn.net/m0_37897502/article/details/78284036