嚴蔚敏資料結構10 24習題

2021-09-13 14:46:13 字數 652 閱讀 9724

2路插入排序的思想就是利用迴圈陣列,增加乙個輔助陣列用來插入排序。將小的數字插入在左邊,將大的數字插入在右邊

詳情可以見這個部落格,我覺得寫得很好:

#includevoid _2_sort(int arr,int aux,int n)

//如果比最大的大

else if( arr[i] >= aux[tail])

//如果比最小的小 比最大的大

else

aux [ (j + n ) % n ] = arr[i];

//由於插入了元素,所以tail的值要變的,以前一直忘記了

tail = ( tail + 1 + n) % n;

} }//然後複製陣列

for(j = 0;j < n;j++)

arr[j] = aux[(head + j) % n];

}int main(int argc, char const *ar**)

; int aux [6];

_2_sort(arr,aux,6);

for (int i = 0; i < 6; i ++)

printf("%d ", arr[i]);

printf("\n");

return 0;

}

嚴蔚敏資料結構習題3 17

3.17 試寫乙個演算法,識別一次讀入的乙個以 為結束符的字串行是否為形如 序列1 序列2 模式的字串行。其中序列1和序列2中都不含字元 且序列2是序列1的逆序列。例如,a b b a 是屬該模式的字串行,而 1 3 3 1 則不是。include include define stack init...

嚴蔚敏資料結構習題3 31

3.31 假設稱正讀和反讀都相同的字串行為 回文 例如,abba 和 abcba 是回文,abcde 和 ababab 則不是回文。試寫乙個演算法判別讀入的乙個以 為結束符的字串行是否是 回文 這題非常簡單,分別入棧和入隊,然後出棧和出佇列比較,相同即可。這種思路我也是靈光一閃想到的。本以為能沾沾自...

嚴蔚敏 資料結構習題 6 52

乙個二叉樹的繁茂度定義為各層節點數的最大值與樹的高度的乘積。是寫個演算法,求二叉樹的繁茂度。其實就是找出結點數最多的那一層,然後結點數乘以樹的高度 include include include include include include include include using namesp...