第二週周任務總結

2021-10-01 04:45:21 字數 2427 閱讀 7241

排序原本c語言構造乙個結構體是這樣的:

struct books

;struct books book;

想要和c++一樣方便:

typedef

struct books

sbook;

//這裡不是定義乙個新的結構體變數,而是命名乙個新的名字

sbook book;

而在c++中他變成了這樣

struct books

;books book;

//會發現定義books的結構體變數不需要再使用struct

同時在c++中typedef也基本沒什麼用了

const

int maxn =

1e6+

5;int a[maxn]

;int b[maxn]

;//這種方法固定可知方便 有利於以後長串的**

使用方法:

bool a;

a=false;//(bool是乙個位元組,而之前int來表示正負來完成bool的功能要4位,也即是32個位元組)

歸併排序一共分兩種步驟

將要排序的數列一次又一次進行對半分的操作(直到分解成乙個單位)

將倆個乙個單位進行有序組合,然後組合好的這兩個單位成為乙個新的整體,和另外乙個相鄰的另乙個整體進行了有序排列,然後這四個數字形成的有序數列

又成為了乙個新的整體…

以此類推 最後再進行有序的合併。

**實現:

#include

void

merge_array

(int

*a,int first,

int middle,

int last ,

int*temp)

//進行有序的合併

while

(i<=middle)

temp[k++

]=a[i++];

while

(j<=last)

temp[k++

]=a[j++];

for(i=

0;i) a[first+i]

=temp[i]

;//重新賦給a陣列時,是從first開始的。

}void

merge_sort

(int

*a,int first,

int last,

int*temp)

//將陣列進行拆分,同時通過merge_array來進行有序的組合

}//以下為自行設計的樣例

intmain()

;int temp[11]

;merge_sort

(a,0,8

,temp)

;for

(i=0

;i<

9;i++

)printf

("%d "

,a[i]);

return0;

}

快速排序(這裡假設有n個數)就是通過一次次選擇中間值a【x】,將比a【x】大的數放到前面,小的數放到後面,然後分流用遞迴,從a~ a【x-1】和a【x+1】~ a【n-1】進行上述操作,直到最後分前後只有三個數。

像乙個挖坑遊戲:

隨意選擇乙個中間值a[0](一般選擇第乙個)設定為x,那麼這個中間值就被我們提取到了x上面,隨之在原本放在a[0]的位置空出來了

那麼我們就要從後往前找到乙個比x大的數將它放到那個坑上,這樣雖然x空出來的位置被填滿,但是又有乙個新的坑出現

這次我們從前往後找到乙個比x小的數填到後面的坑

周而復始,直到乙個交點,從前找不到比x小的數,從後面也找不到比x大的數,那麼那個交點就可以把x也就是原本的a填進去

**實現:

#include

#include

void quick_sort (

int*a,

int l,

int r)

a[i]

=x;//第一次沒有將原本的數字再次填進去導致錯誤

quick_sort

(a,l,i-1)

;//quick_sort

(a,i+

1,r)

;//這兩個呼叫函式要放在括號裡面,不然沒有終止條件,只會無限制呼叫下去}}

////以下為自測樣例

int main ();

quick_sort

(a,0,5

);for(i=

0;i<

6;i++

)printf

("%d "

,a[i]);

return0;

}

第二週任務

1.編寫調式執行第乙個c 程式,要求輸出你的班級 姓名和學號 2.輸入課本例題1.2,除錯執行程式,並分析程式。3.分析程式中哪些是識別符號,哪些是關鍵字。4.回答什麼是程式 工程,原始檔 目標檔案 執行檔案 編譯預處理 名字空間 函式.主函式。1 螢幕顯示 班級,姓名,學號 by 工控男 incl...

第二週任務

這個作業屬於哪個課程 這個作業要求在 homework 12444 這個作業的目標 對j a的進一步學習 學號212006126 1.本週任務 對j a物件導向,和對j a三大特徵的學習。學習簡單的動態規劃揹包問題。2.學習進度反饋 1.基本上看完了 對j a基礎語法和三大特徵有了基本的了解。個人感...

JAVA 第二週 任務三

1 程式隨機分配給使用者乙個1 100之間的隨機數 2 使用者在輸入對話方塊中輸入自己的猜測 3 程式返回提示資訊,提示資訊分別是 猜大了 猜小了 猜對了 4 使用者可根據提示資訊再次輸入猜測,直到提示資訊是 猜對了 作 者 劉向一 完成日期 版 本 號 v1.0 對任務及求解方法的描述部分 輸入描...