資料結構平時作業 第一章緒論

2021-10-13 04:34:35 字數 1712 閱讀 1273

客觀題總分@ 有起泡排序如下:

void

bubble_sort

(int a,

int n)}}

//bubble_sort

1.(共15分)分析該演算法的最佳情況 ,最壞情況和平均情況下各自的時間複雜度(給出分析思路與過程)。

(1) 最佳情況的時間複雜度分析(5分):

(2) 最壞情況的時間複雜度分析(5分):

(3) 平均情況的時間複雜度分析(5分):

2.(共10分)與一般的起泡排序比較異同,並從時空效率角度說明哪種更優。

書本內容:p16

(1)最佳情況: 分析:最佳情況即為a中的整數剛好為自小到大有序的整數序列,在這種情況下,change的初始值為true,第乙個for迴圈裡將change的值改為了false,第二個for迴圈從第乙個開始相鄰的兩個整數進行比較,判斷大小,因為原表剛好有是自小到大有序,所以,不會發生交換的情形,change的值也不會改變,不滿足第乙個迴圈的條件,退出迴圈,所以,核心語句為起比較作用的**,其時間複雜度為o(n); 最佳情況的時間複雜度為o(n);

(2)最壞情況: 分析:最壞情況為a中的整數剛好為自大到小有序的整數序列,即與我們需要的自小到達有序的整數序列剛好相反。在這種情況下,所有語句都要執行,並且重複最多次數。最壞情況的時間複雜度為o(n^2)。 (3)平均情況: 分析:平均情況即為a中整數的排列是無序的,在執行語句的過程中會變得有序,就不用將所有迴圈執行完全。在這種情況下,有很多種可能,時間複雜度在o(n)與o(n^2)之間。

2相同點:

(1)均使用了兩個迴圈。

(2)在第二個迴圈內部都有乙個判斷的**。

(3)如果符合條件,就會將兩個量進行交換。

不同點:該起泡排序比一般起泡排序

(1)多定義了乙個change的量,多利用了空間。

(2)在第乙個迴圈的條件判斷時多了乙個對change的賦值和判斷,多利用了時間。

(3)在第乙個迴圈裡多了乙個對change的賦值。

(4)在將符合條件的兩個量交換之後還多了乙個對change的賦值。

在時間複雜度的分析上:一般起泡排序的時間複雜度在所有情況下都是一樣的,為o(n2),而該起泡排序的時間複雜度不同情況有不同的變化,最壞情況下的時間複雜度才為o(n2),所以該氣泡排序的時間效率更優。

在空間複雜度的分析上:該氣泡排序比一般起泡排序的多定義了乙個變數,在空間效率上是一般的起泡排序法更優。 總體分析:在資料的排列不是最壞的情況下,該起泡排序的時空效率更優,如果是最壞的情況,兩種起泡排序的時空效率是一樣的。所以,該起泡排序的時空效率更優。

分析如下程式中 (1)

~(10)各語句的頻度

ex()

(9)for

(j=1

; j<

3; j++

)//n =27 (10

)printf

(「\n」)

;//n =18

}}

資料結構第一章緒論

緒論主要是對計算機資料結構一書有大致了解,系統的講解資料結構在程式結構的應用,資料結構的相關概念,演算法在程式中的應用,從而從巨集觀上了解資料結構,更有利於以後學習。1 資料結構在程式中的應用 其實乙個公式就可以了解程式和演算法還有資料,即資料結構 演算法 程式,由公式可知資料結構是程式的一部分。2...

資料結構 第一章 緒論

用計算機求解任何問題都離不開程式設計,程式設計的實質是資料表示和資料處理。一,資料結構基本概念 1.資料是資訊的載體,是電腦程式處理的原料。可以將資料分為兩大類 一類是整數實數等數值資料,一類是文字,影象聲音,圖形等非數值資料。資料元素是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。構...

資料結構 第一章 緒論

程式設計的實質是資料表示和資料處理。資料要能被計算機處理,首先必須能夠儲存在計算機的記憶體中,這項任務稱為資料表示,其核心是資料結構 乙個實際問題的求解必須滿足各項處理要求,這項任務稱為資料處理,其核心是演算法。資料結構課程主要是討論資料表示和資料處理的基本方法。1.1 1.2 1 資料的邏輯結構 ...