Rumah > Java > javaTutorial > Bagaimana untuk menulis kod untuk tatasusunan jarang di java

Bagaimana untuk menulis kod untuk tatasusunan jarang di java

WBOY
Lepaskan: 2023-04-19 08:22:02
ke hadapan
803 orang telah melayarinya

Organisasi jarang

  • Apabila kebanyakan elemen dalam tatasusunan ialah 0, atau tatasusunan dengan nilai yang sama, tatasusunan jarang boleh digunakan untuk menyimpan tatasusunan

  • Jarang tatasusunan, rekod bilangan baris dan lajur yang ada, dan berapa banyak nilai berbeza yang ada

  • Rekodkan elemen dan baris dengan nilai yang berbeza ​dalam tatasusunan saiz kecil, dengan itu mengurangkan saiz program!

Mari kita tentukan tatasusunan asal:

原始数组如下:
0 0 3 0 0 
0 0 0 0 4 
0 0 0 5 0 
0 0 6 0 0 
0 0 0 0 0
Salin selepas log masuk

Seperti yang anda lihat, kebanyakan tatasusunan ini ialah 0, kita boleh menukar tatasusunan ini kepada tatasusunan jarang

Baris pertama tatasusunan jarang menyimpan jumlah bilangan baris, jumlah bilangan lajur dan jumlah bilangan data yang disimpan

//因为数组的下标是从0开始的,所以可以看出,第一行的第三个数,用下标表示,实际上是数组[0][2]
	5 5 4 
	0 2 3 
	1 4 4 
	2 3 5 
	3 2 6
Salin selepas log masuk

Mari kita lihat cara melaksanakan tatasusunan jarang ini dan bagaimana untuk memulihkan tatasusunan jarang ke

Contoh kod:

package com.ling.array;
public class ArrayDemo11 {
    public static void main(String[] args) {
        int[][]   array=new int[5][5];
        array[0][2]=3;
        array[1][4]=4;
        array[2][3]=5;
        array[3][2]=6;
        System.out.println("原始数组如下:");
        for (int[] ints : array) {
            for (int anInt : ints) {
                System.out.print(anInt+" ");
            }
            System.out.println();
        }
        System.out.println("行"+"\t"+"列"+"\t"+"存放的数据"+"\t");
        //稀疏数组第一行存放的分别是总行数,总列数和存放的数据总数
//        System.out.println(5+"\t"+5+"\t"+4);
//        System.out.println(1+"\t"+3+"\t"+3);
//        System.out.println(2+"\t"+5+"\t"+4);
//        System.out.println(3+"\t"+4+"\t"+5);
//        System.out.println(4+"\t"+3+"\t"+6);
        int sum=0;
        for (int i = 0; i <5 ; i++) {
            for (int j = 0; j <5 ; j++) {
                if (array[i][j]!=0){
                    sum++;
                }
            }
        }
        int[][] arr2=new int[sum+1][3];
        //这个二维数组的第一行是确定的
        arr2[0][0]=5;
        arr2[0][1]=5;
        arr2[0][2]=sum;
        int count=0;
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                if (array[i][j]!=0){
                    count++;
                    arr2[count][0]=i;
                    arr2[count][1]=j;
                    arr2[count][2]=array[i][j];
                }
            }
        }
        System.out.println("输出稀疏数组");
        for (int[] ints : arr2) {
            for (int anInt : ints) {
                System.out.print(anInt+" ");
            }
            System.out.println();
        }
    }
}
Salin selepas log masuk

Output:

Output tatasusunan asal
0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 2 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
Nombor daripada nilai yang sah: 2
Output tatasusunan jarang:
11 11 2
1 2 1
3 2 2
=========bahagi======= =cut====== =====Barisan==============
Kami juga boleh memulihkan tatasusunan jarang
Cetak tatasusunan yang dipulihkan
0 0 . 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0

Atas ialah kandungan terperinci Bagaimana untuk menulis kod untuk tatasusunan jarang di java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan