数据结构:
1.数据与数据之间的逻辑关系:集合、一对一、一对多、多对多
2.数据的存储结构:
线性表:顺序表(比如:数组)、链表、栈、队列
树形结构:二叉树
图形结构:
算法的五大特征:
输入(input) | 有0个或多个输入数据,这些输入必须有清楚的描述和定义 |
输出(output) | 至少有1个或多个输出结果,不可以没有输出结果 |
有穷性(有限性,Finiteness | 算法可以在有限的步骤之后会自动结束而不会无限循环,并且每一个步骤可以在可接受的时间完成。 |
确定性(明确性,Definiteness) | 算法中的每一步都有确定的含义,不会出现二义性 |
可行性(有效性,Effectiveness) | 算法的每一步都是清楚可行的,能让用户用纸笔计算而求出答案 |
练习 1:
声明:int[]x,y[];(x是一维数组,y是二维数组)在给x,y变量赋值以后,以下选项允许通过编译的是:
a) x[0]=y;no
b) y[0]=x;yes
c) y[0][0]=x;no
d) x[0][0]=y;no
e)y[0][0]=x[0];yes
f)x=y;no
杨辉三角
package com.enlai.consst;
//杨辉三角
public class helloeverday{
public static void main(String[] args)
{
int arr[][]=new int [10][];
for(int i=0;i<arr.length;i++)
{
arr[i]=new int[i+1];//定义每一列都比每一行多1;
//遍历赋值
arr[i][0]=arr[i][i]=1;
for(int j=1;j<arr[i].length-1;j++)
{
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
}
//输出
for(int i=0;i<arr.length;i++)
{
for(int j=0;j<arr[i].length;j++)
{
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
}
eg:从10-99中取10个随机数,求这10个数中的最大值,最小值,平均值,总和
package com.enlai.consst;
/*
* 练习3
* 从10-99中取10个随机数,求这10个数中的最大值,最小值,平均值,总和;
*/
public class helloeverday{
public static void main(String[] args)
{
int arr[]=new int[10];
for(int i=0;i<arr.length;i++)
{
arr[i]=(int)(Math.random()*(99-10+1)+10);
}
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]+" ");
}
//最大值
int maxnum=arr[1];
for(int i=0;i<arr.length;i++)
{
if(arr[i]>maxnum)
maxnum=arr[i];
}
System.out.println("最大值为"+maxnum);
//最小值
int minnum=arr[0];
for(int i=0;i<arr.length;i++)
{
if(minnum>=arr[i])
{
minnum=arr[i];
}
}
System.out.println("最小值为"+minnum);
//总和
int sum=0;
for(int i=0;i<arr.length;i++)
{
sum+=arr[i];
}
System.out.println("总和"+sum);
//平均值
int arrage=0;
for(int i=0;i<arr.length;i++)
{
arrage=sum/10;
}
System.out.println("平均值"+arrage);
}
}
之后会说一些与数组有关的算法。