三郎資料結構演算法學習筆記 稀疏陣列

2021-10-25 04:56:23 字數 1723 閱讀 7429

演算法:稀疏陣列

用途:對於一堆資料,裡面大部分資料相同,只有少部分不同,若直接儲存會造成空間浪費,為此採用稀疏陣列來儲存資料

思想:我們可以新建另乙個陣列,儲存原陣列的空間結構,和各個不同值的位置和值,再把這個陣列儲存到原陣列中,當訪問原陣列在根據這個陣列,還原原陣列資料。**如下:

* function:稀疏陣列

** */

public class sparsearray

system.out.println();

}//將二維陣列 轉 稀疏陣列的思想

//1. 先遍歷二維陣列 得到非 0 資料的個數

int sum = 0;

for (int i = 0; i < 11; i++) }}

//2. 建立對應的稀疏陣列

int sparsearr = new int[sum + 1][3];

// 給稀疏陣列賦值

sparsearr[0][0] = 11; sparsearr[0][1] = 11; sparsearr[0][2] = sum;

//遍歷二維陣列,將非 0 的值存放到 sparsearr 中

int count = 0;

//count 用於記錄是第幾個非 0 資料

for (int i = 0; i < 11; i++) }}

//輸出稀疏陣列的形式

system.out.println(); system.out.println("得到稀疏陣列為~~~~");

for (int i = 0; i < sparsearr.length; i++)

system.out.println();

//將稀疏陣列 --》 恢復成 原始的二維陣列

/** 1. 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列,

比如上面的 chessarr2 = int[11][11]

2. 在讀取稀疏陣列後幾行的資料,並賦給 原始的二維陣列 即可.

*///1. 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列

int chessarr2 = new int[sparsearr[0][0]][sparsearr[0][1]];

//2. 在讀取稀疏陣列後幾行的資料(從第二行開始),並賦給 原始的二維陣列 即可

for(int i = 1; i < sparsearr.length; i++)

// 輸出恢復後的二維陣列

system.out.println();

system.out.println("恢復後的二維陣列");

for (int row : chessarr2)

system.out.println();}}

}**結果

三郎資料結構演算法學習筆記 順序查詢演算法

根據下表等索引按照先後順序查詢的演算法 如果找到了,就提示找到,並給出下標值 public class seqsearch 沒有順序的陣列 int index seqsearch arr,11 if index 1 else 這裡我們實現的線性查詢是找到乙個滿足條件的值,就返回 param arr ...

資料結構和演算法學習 資料結構之稀疏陣列

編寫的五子棋程式中,有存檔退出和續上盤的功能。問題分析 因為該二維陣列的很多值是預設值 0,因此記錄了很多沒有意義的資料 稀疏陣列 當乙個陣列中大部分元素為 或者為同乙個值的陣列時,可以使用稀疏陣列來儲存該陣列。稀疏陣列的處理方法 稀疏陣列舉例說明 整體思路分析 將二維陣列 轉 稀疏陣列 1.先遍歷...

資料結構與演算法學習筆記

演算法基礎篇 第一章 演算法概述 首先了解一下基本的概念 1.1 什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。演算法可以抽象出5個特徵 ...