首页 / 算法 / 基础知识补全,数组算法入门
基础知识补全,数组算法入门
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基础知识补全,数组算法入门,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1988字,纯文字阅读大概需要3分钟。
内容图文
前言:你好未来的自己!你好陌生人!简单的自我总结.没有什么营养.泄泄狂神
基础知识补全,数组算法入门
数据结构
- 基本结构:除特殊情况外,java的代码运行顺序为同级自上而下运行.(拓展:但是编译器有优化机制,会进行指令重排,单线程没有关系,多线程可能会出现线程安全)
- 选择结构:if/switch判断:if单选 switch可多选
- 循环结构:for/增强for循环/while/do...while循环,for判断循环.增强for是遍历数组.while和for一样.do...while是先执行代码后判断
方法的重载
请区别方法的重写.重载是指同名方法不同的传参.与返回值无关.
重写是重写对应的方法.方法生明必须一致,包括修饰符返回值方法名,参数
可变参数
这个用的比较少.方法传递参数的最后一个参数不能确定其数量就可以使用可变参数
例如:
public static void main(String[] args) {
test1(1,77,44,22);//77,44,22代表c
}
private static void test1(int a,int... c) { //这个c本质是一个数组
}
注意的是,只能有一个可变参数,且只能是最后一个参数
递归
自己调用自己.
必须设置递归出口,不然就是死循环
把上一次调用自己的值作为参数再计算,就可以使用递归.完全可以被迭代替代
数组
数组一旦开辟空间,定义好了长度就不能再改变.有序可以通过下标(索引)找到对应的值
//一维数组:
int[] arr = new [10]; int[] arr = {xx,xx}
//二维数组:
int[][] arr = new [10][10] ;
反转数组
创建一个新的数组,同等长度
原数组1赋值给新数组的末尾.循环返回新数组完成反转
稀疏数组
稀疏数组的定义:
原二维数组,里面有很多重复的数据.将其转换成稀疏数组压缩空间
我做了一个压缩重复值为0的utils包...其他数字可能需要使用填充
请看:
- 二维数组转成压缩0的稀疏数组
public static int[][] getXiShuInt(int[][] arr,int a){
if (arr == null) {
return new int[0][0];
}
//统计有多少个不同的数据
int sum = 0;
//循环二维数组
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
if (arr[i][j]!=a){
sum++;
}
}
}
//创建稀疏数组
int[][] array = new int[3][sum+1];
//给系数数组添加表头
array[0][0]=arr.length;
array[0][1]=arr[0].length;
array[0][2]=sum;
//统计个数
int cunit = 0 ;
//遍历原数组获得差异数据的信息
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++) {
if (arr[i][j]!=a){
cunit++;
array[cunit][0]=i;
array[cunit][1]=j;
array[cunit][2]=arr[i][j];
}
}
}
return array;
}
- 将稀疏数组解压成二维数组
public static int[][] XiShuToArr(int[][] xi){
//创建一个二维数组
int[][] arr = new int[xi[0][0]][xi[0][1]];
for (int i = 1; i < xi[0].length; i++) {
arr[xi[i][0]][xi[i][1]] = xi[i][2];
}
return arr;
}
总结:
将原二维数组转换成 固定一维3的新二维数组 [0]记录的是二维数组声明空间信息.往后都是记录不通值的坐标+数值.依次传入新二维数组.从而压缩了原来所有的数值<扎总结>
常用api
- Scanner,控制台交互对象.next和nexLine的区别. next以空格为终止符,line是回车使用line
- Arrays数组工具:目前会用的就是toString和sort排序,fill填充
今天是第3天写博客,坚持.坚持26天养成一种习惯.加油!
原文:https://www.cnblogs.com/Mr-Dacon/p/13456529.html
内容总结
以上是互联网集市为您收集整理的基础知识补全,数组算法入门全部内容,希望文章能够帮你解决基础知识补全,数组算法入门所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。