資料結構高階實訓七

2021-10-08 09:12:52 字數 2188 閱讀 8821

題目2題目3

data structure advanced training course notes and algorithm exercises

source code:

判斷兩個鍊錶是否相交?

- 給定兩個單鏈表,判斷兩個單鏈表是否相交?

- 假設兩個單鏈表均沒有環

如果鍊錶有交點,那麼他們一定有共同字尾,轉化為共同字尾問題

連續子陣列的最大和。

輸入乙個整形陣列,陣列裡有正數也有負數。陣列中乙個或連續的多個整數組成乙個子陣列。

求所有子陣列的和的最大值。要求時間複雜度為o(n)

- 例如輸入陣列為(1、-2、3、10、-4、7、2、-5)

- 和最大的子陣列為( 3、10、-4、7、2 )

- 該子陣列的和為18

將第乙個元素預設最大值,往後遍歷,並相加;

如果此時和sum小於當前元素,就捨棄之前的元素;

如果當前sum大於記錄的max值,將max值改為sum;

直到遍歷結束陣列所有元素

int

maxsum

(int a,

int size,

int*s,

int*e)

int sum =0;

//初始和為0

int i =0;

int max = a[i]

;//最大值最初必為陣列第乙個元素

for(i; i < size; i++

)//如果加上當前元素之後的和比當前元素大

//說明可以繼續累加

//如果當前和比最大值大,則更新最大值為當前和

//否則,不做更新

陣列中的逆序對。

在陣列中的兩個數字,如果前面的數字大於後面的數字,則這兩個數字組成乙個逆序對。

- 輸入乙個陣列,輸出逆序對、並求出這個陣列**現的逆序對的總數

- 例如:陣列中元素,一共有5個逆序對分別是(7,6)、(7,5)(7,4)、(6,4)、(5,4)

利用歸併的思想;

在排序交換元素的時候就輸出這兩數,就是逆序對,並用計數器記錄

等多精彩,訪問我的個人部落格吧!

資料結構實訓作業

1 include 2 define datamax 100 3 typedef struct string 7 初始化字串 8void initstring string s 912 輸入字串 13void inputstring string s 1422 s data i 0 23 s len...

資料結構實訓 joseph環

任務 編號是1,2,n的n個人按照順時針方向圍坐一圈,每個人只有乙個密碼 正整數 一開始任選乙個正整數作為報數上限值m,從第乙個仍開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下乙個人開始重新從1報數,如此下去,直到所有人全部出列為止。設計...

資料結構實訓 各種排序

任務 用程式實現插入法排序 起泡法改進演算法排序 利用插入排序和冒泡法的改進演算法,將使用者隨機輸入的一列數按遞增的順序排好。輸入的資料形式為任何乙個正整數,大小不限。輸出的形式 數字大小逐個遞增的數列。include using namespace std void insertsort int ...