| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 数据结构与算法 -> 菜鸟升级日记8 -> 正文阅读 |
|
|
[数据结构与算法]菜鸟升级日记8 |
面向对象稀疏数组本来是打算偷懒不写这个内容的,但昨天看了一下数据结构的网课,发现里面也讲了稀疏数组,所以还是把它过一遍比较好。 普通数组和稀疏数组的区别
稀疏数组的代码实现将普通数组转化为稀疏数组
1.先建立普通数组 int[][] array=new int[5][7];
array[0][2]=1;
array[1][3]=2;
array[2][4]=3;
for(int[] row:array){ //打印出二维数组
? ?for(int i:row){
? ? ? ?System.out.print(i+" ");
? }
? ?System.out.println();
}
2.再建立稀疏数组 稀疏数组的第0行的三个数分别是二维数组的行、列和有效值的个数; 稀疏数组的行数是二维数组的有效值的个数加一,列数为3; 则需要遍历二维数组,找出有效值的个数。 int count=0;
for(int i=0;i<5;i++){
? ?for(int j=0;j<7;j++){
? ? ? ?if(array[i][j]!=0){
? ? ? ? ? ?count++;
? ? ? }
? }
}
int[][] sparse=new int[count+1][3];
sparse[0][0]=5;
sparse[0][1]=7;
sparse[0][2]=count;
int sum=0;
for(int i=0;i<array.length;i++){
? ?for(int j=0;j<array[i].length;j++){
? ? ? ?if(array[i][j]!=0){
? ? ? ? ? ?sum++;
? ? ? ? ? ?sparse[sum][0]=i;
? ? ? ? ? ?sparse[sum][1]=j;
? ? ? ? ? ?sparse[sum][2]=array[i][j];
? ? ? }
? }
}
3.打印出稀疏数组 for(int[] num:sparse){
? ?for(int a:num){
? ? ? ?System.out.println(a+" ");
? }
? ?System.out.println();
}
4.将稀疏数组还原成二维数组 int[][] array2=new int[sparse[0][0]][sparse[0][1]];
for(int i=1;i<sparse.length;i++){
? ? ? array2[sparse[i][0]][sparse[i][1]]=sparse[i][2];
}
for(int[] nums:array2) {
for(int b:nums) {
System.out.print(b+" ");
}
System.out.println();
}
运行结果如下:
封装高内聚,低耦合
封装的作用
继承
方法实现重现时
方法未实现重写时
_____________________________________________________________________________ 又断更了好长时间,今天刚去学校报道完,忙了好久。 刚进寝室,就看见我的床帘塌了,不过幸运的是,没有发现发霉现象。 感觉这个学期会开始忙起来了,自己要改变的地方也很多,而且要在短时间内——坚持健身、不要过于在意别人的眼光和想法、自律等等,努力让自己再次发光吧!
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年10日历 | -2025/10/21 4:09:30- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |