激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C語言數組學習之特殊矩陣的壓縮存儲

C語言數組學習之特殊矩陣的壓縮存儲

2022-03-10 14:39kikokingzz C/C++

矩陣在計算機圖形學、工程計算中都占有舉足輕重的地位,本文將討論如何將矩陣更有效地存儲在內存中,并且能夠方便地提取矩陣中的元素。感興趣的同學可以了解一下

首先最開始我們先回憶一下數組的概念

1.數組的定義

數組是由n個相同類型的數據元素構成的有限序列,每個數據元素稱為一個數組元素,每個元素在n個線性關系中的序號稱為該元素的下標,下標的取值范圍稱為數組的維界。

數組與線性表的關系

數組是線性表的推廣

  • 一維數組可以視為一個線性表
  • 二維數組可視為其元素為定長線性表的線性表
  • 數組一旦被定義,其維數和維界就不再改變,因此除了數組結構的初始化和銷毀外,數組只能執行存儲元素和修改元素的操作

在了解完數組的定義后,我們再了解一下數組在內存中是如何存儲的

 

2.數組的存儲結構

一個數組的所有元素在內存中占用一段連續的存儲空間

一維數組的存儲如下:

C語言數組學習之特殊矩陣的壓縮存儲

對于多維數組,比如二維數組來說,有兩種映射方法:按行優先 和 按列優先

按行優先:先行后列,先存儲行號較小的元素,行號相等先存儲列號較小的元素

C語言數組學習之特殊矩陣的壓縮存儲

按列優先:先列后行,先存儲列號較小的元素,列號相等先存儲行號較小的元素

C語言數組學習之特殊矩陣的壓縮存儲

習題1

C語言數組學習之特殊矩陣的壓縮存儲

在了解數組在內存中的存儲方式后,我們可以開始用數組來存儲矩陣中的元素了!

 

3.對稱矩陣

概念

對于一個n階方陣A中的任意一個元素ai,j都有ai,j=aj,i,則稱為對稱矩陣

對于一個對稱矩陣我們可以將其中的元素劃分為3個部分:上三角區,主對角線和下三角區

C語言數組學習之特殊矩陣的壓縮存儲

存儲方法選擇

土辦法

用一個n*n的數組去完完整整地將整個矩陣中的元素給存儲下來。

壓縮存儲

我們發現對于n階對稱矩陣,上三角區的所有元素與下三角區的所有元素相同,若采用上述的土辦法,將會浪費幾乎一半的空間,因此我們將其中重復相同的元素只存放一次。

存儲主對角線和下三角區

C語言數組學習之特殊矩陣的壓縮存儲

可見,采取行優先的原則將主對角線和下三角區的元素存入數組B當中

那么在數組B當中,ai,j對應B[?]呢?我們可以自己通過計算得出一個映射公式

C語言數組學習之特殊矩陣的壓縮存儲

習題1

C語言數組學習之特殊矩陣的壓縮存儲

習題2

C語言數組學習之特殊矩陣的壓縮存儲

 

4.三角矩陣

概念

C語言數組學習之特殊矩陣的壓縮存儲

存儲方法選擇

土辦法

用一個n*n的數組去完完整整地將整個矩陣中的元素給存儲下來。

壓縮存儲法

與對稱矩陣不同之處在于,存儲完下三角區和主對角線上的元素之后,緊接著存儲對角線上方的常量一次。

按行存儲主對角線和下三角區+常量C

C語言數組學習之特殊矩陣的壓縮存儲

按行存儲主對角線和上三角區+常量C

C語言數組學習之特殊矩陣的壓縮存儲

 

5.三對角矩陣

概念

對角矩陣稱為帶狀矩陣;在三對角矩陣中,所有非零元素都集中在以主對角線為中心的3條對角線的區域,其他區域的元素都為零

C語言數組學習之特殊矩陣的壓縮存儲

存儲方法選擇

壓縮存儲法

C語言數組學習之特殊矩陣的壓縮存儲

習題1

C語言數組學習之特殊矩陣的壓縮存儲

 

6.稀疏矩陣

概念

矩陣中非零元素的個數t,相對矩陣元素的個數s來說非常少,即s>>t的矩陣稱為稀疏矩陣。

C語言數組學習之特殊矩陣的壓縮存儲

存儲方法選擇

三元組存儲

C語言數組學習之特殊矩陣的壓縮存儲

十字鏈表法

 C語言數組學習之特殊矩陣的壓縮存儲

到此這篇關于C語言數組學習之特殊矩陣的壓縮存儲的文章就介紹到這了,更多相關C語言 矩陣的壓縮存儲內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://kikoking.blog.csdn.net/article/details/121750093

延伸 · 閱讀

精彩推薦
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
主站蜘蛛池模板: 午夜视频在线免费播放 | 成人毛片视频免费 | 欧美成人精品一区二区三区 | 黄色av片三级三级三级免费看 | 91精品国产一区二区三区动漫 | 成人午夜视频在线观看免费 | 中文字幕在线视频日本 | 香蕉国产在线视频 | 国产三级国产精品国产普男人 | 精品一区二区在线观看视频 | 精品国产一区二区三区四 | 亚洲成人精品久久 | 欧美性猛交xxx乱大交3蜜桃 | 视频www| 一级电影在线观看 | 一区二区精品视频在线观看 | 成人羞羞国产免费游戏 | 成人做爰高潮片免费视频美国 | 色网站在线免费观看 | 欧美成人一区二区三区 | 久久午夜免费视频 | 一本色道久久综合亚洲精品小说 | 久久综合狠狠综合久久 | 五月婷婷第四色 | 水多视频在线观看 | 久久老司机精品视频 | 日韩视频―中文字幕 | 国产毛片网站 | 一级在线观看视频 | 亚洲少妇诱惑 | www.guochan| 成人免费观看49www在线观看 | 一本色道久久综合狠狠躁篇适合什么人看 | 黄污视频在线看 | 亚洲成人国产综合 | 成人精品一区二区三区中文字幕 | 欧美成人性色 | 精品视频 久久久 | 国产永久免费观看 | 久草在线免费看 | 激情综合在线 |