一、用O記號(hào)表示函數(shù)(n ^ 3)/1000-100(n^2)-100n十3。
文心一言:
chatgpt:
可以使用大 O 記號(hào)表示該函數(shù)的漸進(jìn)復(fù)雜度,即:
f ( n ) = n 3 1000 ? 100 n 2 ? 100 n 13 = O ( n 3 ) . f(n) = \frac{n^3}{1000} - 100n^2 - 100n^{13} = O(n^3). f(n)=1000n3??100n2?100n13=O(n3).
其中, O ( n 3 ) O(n^3) O(n3) 表示該函數(shù)在 n n n 趨近于無(wú)窮大時(shí),其增長(zhǎng)速度不超過(guò) n 3 n^3 n3 的一個(gè)上界。
二、考慮排序存儲(chǔ)在數(shù)組A 中的n 個(gè)數(shù):首先找出A 中的最小元素并將其與A[1]中的元素進(jìn)行交換。接著,找出A中的次最小元素并將其與 A[2]中的元素進(jìn)行交換。對(duì)A 中前n-1個(gè)元素按該方式繼續(xù)。該算法稱為選擇算法,寫出其偽代碼。該算法維持的循環(huán)不變式是什么?為什么它只需要對(duì)前 n-1個(gè)元素,而不是對(duì)所有n 個(gè)元素運(yùn)行?用記號(hào)O給出選擇排序的最好情況與最壞情況運(yùn)行時(shí)間。
文心一言:
chatgpt:
選擇排序的偽代碼如下:
SelectionSort(array A)
1. for i = 1 to n - 1
2. minIndex = i
3. for j = i + 1 to n
4. if A[j] < A[minIndex]
5. minIndex = j
6. swap(A[i], A[minIndex])
該算法的循環(huán)不變式是:在每次循環(huán)開始時(shí),已經(jīng)將 A [ 1 ~ i ? 1 ] A[1\sim i-1] A[1~i?1] 中的元素按非降序排列,且它們已經(jīng)放置在正確的位置上。
選擇排序只需要對(duì)前 n ? 1 n-1 n?1 個(gè)元素進(jìn)行操作,因?yàn)樽詈笠粋€(gè)元素已經(jīng)被確定,沒有必要再去比較、交換。
選擇排序的最好情況與最壞情況的運(yùn)行時(shí)間都是 O ( n 2 ) O(n^2) O(n2)。在最好情況下,數(shù)組本來(lái)就是有序的,但算法還是需要進(jìn)行 n ? 1 n-1 n?1 次比較和 0 0 0 次交換;在最壞情況下,數(shù)組是逆序的,每次循環(huán)都需要進(jìn)行 n ? i n-i n?i 次比較和 1 1 1 次交換,所以總共需要進(jìn)行 ∑ i = 1 n ? 1 ( n ? i ) = n 2 ? n 2 \sum_{i=1}^{n-1}(n-i) = \frac{n^2-n}{2} ∑i=1n?1?(n?i)=2n2?n? 次比較和交換。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-537414.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-537414.html
到了這里,關(guān)于文心一言 VS chatgpt (4)-- 算法導(dǎo)論2.2 1~2題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!