999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一道算法設計題的解析

2020-09-18 08:23:10黃詩佳熊啟軍
現代計算機 2020年23期
關鍵詞:排序結構

黃詩佳,熊啟軍

(湖北文理學院計算機工程學院,襄陽441053)

0 引言

在《數據結構與算法》中,主要學習使用兩種存儲結構(順序存儲和鏈式存儲)來實現問題所涉及數據的類型定義、增刪改查等基本操作。線性表是基本的數據結構,是學習樹、圖、散列表,以及查找和排序等知識的基礎。學好線性表則給學習其他知識打下了堅實的基礎。一道算法設計題,使用不同的存儲結構,其實現算法可能不同;即使是使用同一種存儲結構,其實現算法也可能不同。

1 問題描述

待求解的問題是這樣的:輸入若干個正整數(輸入負數或0 結束),將其中出現次數大于等于3 的數據有序輸出。

這道題主要涉及數據的存儲、排序、計數、輸出等。

2 順序存儲結構實現

2.1 整型數組實現

使用一個整型數組作為存儲結構,進行數據的讀取、排序、計數、輸出。其算法描述如下:

(1)聲明一個整型數組a[MaxLength];

(2)輸入若干個正整數a[i],當輸入負數或0 結束;計數實際元素的個數len;

(3)編寫函數sort(int a[],int len)實現遞增排序;

(4)編寫函數output(int a[],int len)實現統計并輸出出現次數大于等于3 的元素。

在這個算法中,第四步是最重要的,其實現算法主要有如下兩種。

2.1.1 順序式計數所謂順序式計數,即是針對排序后的序列,對每個元素出現的次數進行統計。算法如下:

在該算法之中,i 和j 作為當前正在比較的兩元素的下標,它們是順序增加的,且a[i]和a[j]是相鄰的兩個元素;count 則是遞增或回溯的。

當然while 循環的循環體也可以改寫成下面的形式:

使得i 可能跳躍式的增加,但j 仍然是順序遞增的。

對于C 語言學習者來說,掌握上述方法是基本要求;而數據結構的初學者來說則是最低要求了。

2.1.2 跳躍式計數

所謂跳躍式計數,即是針對排序后的序列,第一次拿a[i](最初i=0)與a[i+2]元素進行比較,相等則與a[i+3]比較……、且還需判斷該數是否已經輸出;不等則對i 或j 進行跳躍式賦值,即這里就體現出了兩種跳躍。下面的函數中flag 起標記的作用,即a[i]是否已輸出。具體算法如下:

顯然,跳躍式計數的效率更高一些。上述算法,對于C 語言學習者來說則屬于較高要求。

2.2 結構體數組實現

將數據的值和它出現的次數組織成結構體,所有元素組織成結構體數組。若仍使用2.1.1 中的方法進行排序和計數,則效率很低;若采取邊輸入邊進行插入排序、同時實現計數操作的方式實現,則可以少用一個數組,從而提高存儲空間的使用效率。

2.2.1 結點數據類型定義

2.2.2 算法描述

下面的函數實現將x 插入到已排好序的序列之中、同時完成計數。

上述兩種方法3 種方式的解答辦法具有共同的特點:都使用順序存儲結構,空間復雜度是相同的;時間復雜度總體上與使用的排序方法的時間復雜度一致,計數方法上有順序和跳躍式兩種、后者效率略高。

上述算法對于數據結構學習者來說則是基本要求。

3 鏈式存儲結構實現

3.1 數據類型定義

將數據的類型組織成值、次數、指針三個數據項構成結構體,所有數據組織成鏈表。每個結點的數據類型具體描述如下:

其中,data 表示輸入的整型值;count 表示某值出現的次數;next 表示下一結點的地址。

3.2 算法描述

功能的實現由4 個函數構成,分別是鏈表初始化函數、集排序計數于一體的函數、輸出結果函數、主函數。具體算法如下。

(1)鏈表初始化函數

上述函數的功能是建立一個含頭結點的初始化鏈表。

(2)集排序計數于一體的函數

這個函數實現將值為x 的正整數插入到一個遞增有序的鏈表之中,同時實現計數操作。

(3)輸出函數

(4)主函數

由于使用鏈式存儲結構,所以排序只能使用直接插入排序,其時間復雜度是O(n^2);在空間復雜度上,由于無需考慮數據存儲時初始空間的大小。因此,與順序存儲結構比較,優勢比較明顯。

上述算法對于數據結構學習者來說則是必備技能。

4 結語

這道算法設計題,能檢驗對線性表中順序存儲、鏈式存儲以及操作的理解和應用能力。《數據結構與算法》是計算機專業的核心基礎課程,是計算機程序設計的重要理論和實踐基礎,是研究生考試的必考科目。對于算法設計題,必須要考慮數據的類型定義、存儲結構、且必須體現數據的完整性,以及算法的時間和空間復雜度性能,才能更好地體現該課程的價值。

猜你喜歡
排序結構
排排序
排序不等式
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
恐怖排序
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結構的應用
模具制造(2019年3期)2019-06-06 02:10:54
節日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
論《日出》的結構
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
主站蜘蛛池模板: a在线观看免费| 中文字幕乱码二三区免费| 国产成人精品高清不卡在线| 色老二精品视频在线观看| 亚洲手机在线| a级毛片免费看| 亚洲AV无码乱码在线观看裸奔| 日韩高清无码免费| 欧美区国产区| 国产高清在线观看91精品| 九色视频一区| 久久亚洲欧美综合| 日本中文字幕久久网站| 午夜激情婷婷| 亚洲天堂网站在线| 亚洲第一精品福利| 国产成人精品三级| 久久午夜夜伦鲁鲁片无码免费| 国产网站黄| 欧美视频二区| 日韩精品久久久久久久电影蜜臀 | 国产免费久久精品99re丫丫一| 国产成人三级| 日本人妻丰满熟妇区| 国产欧美亚洲精品第3页在线| 国产网站免费| 國產尤物AV尤物在線觀看| 成人永久免费A∨一级在线播放| 日韩在线第三页| 97在线免费视频| 日本免费新一区视频| 国产成人AV男人的天堂| 午夜福利网址| 国产精品无码久久久久久| 欧美一级在线播放| 国产麻豆va精品视频| 日韩毛片在线视频| 欧美日韩国产在线人成app| 亚洲无码免费黄色网址| 超薄丝袜足j国产在线视频| 国产精品开放后亚洲| 四虎影视库国产精品一区| 999国内精品视频免费| 国产美女久久久久不卡| WWW丫丫国产成人精品| 永久免费无码成人网站| 亚洲国产清纯| a毛片免费观看| 国产女人水多毛片18| 成人国产精品一级毛片天堂| 伊人久久婷婷五月综合97色| 中文字幕在线观| 国产亚洲精品97在线观看| 中文字幕无线码一区| 国产在线观看精品| lhav亚洲精品| 免费国产一级 片内射老| 97在线免费| 久久窝窝国产精品午夜看片| 亚洲国产天堂久久九九九| 欧美国产在线看| 思思热在线视频精品| 一区二区三区四区精品视频 | 日韩精品资源| 亚洲成a人片在线观看88| 亚洲精品麻豆| 国产香蕉97碰碰视频VA碰碰看| 国产精品污污在线观看网站| 国产美女在线观看| 性欧美在线| 男女男免费视频网站国产| 伊人久综合| 69精品在线观看| 久久性视频| 片在线无码观看| 久久婷婷国产综合尤物精品| 狠狠亚洲婷婷综合色香| 2022国产91精品久久久久久| 免费看的一级毛片| 国产精品综合久久久| 亚洲动漫h| 久久久久中文字幕精品视频|