演算法:稀疏陣列
用途:對於一堆資料,裡面大部分資料相同,只有少部分不同,若直接儲存會造成空間浪費,為此採用稀疏陣列來儲存資料
思想:我們可以新建另乙個陣列,儲存原陣列的空間結構,和各個不同值的位置和值,再把這個陣列儲存到原陣列中,當訪問原陣列在根據這個陣列,還原原陣列資料。**如下:
* 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個特徵 ...