




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
編程邏輯與算法測(cè)試卷姓名_________________________地址_______________________________學(xué)號(hào)______________________-------------------------------密-------------------------封----------------------------線--------------------------1.請(qǐng)首先在試卷的標(biāo)封處填寫您的姓名,身份證號(hào)和地址名稱。2.請(qǐng)仔細(xì)閱讀各種題目,在規(guī)定的位置填寫您的答案。一、選擇題1.下列哪個(gè)算法屬于貪心算法?
A.二分查找
B.快速排序
C.最長(zhǎng)公共子序列
D.最短路徑算法
2.在以下數(shù)據(jù)結(jié)構(gòu)中,哪個(gè)數(shù)據(jù)結(jié)構(gòu)可以快速進(jìn)行插入和刪除操作?
A.鏈表
B.棧
C.隊(duì)列
D.樹
3.下列哪個(gè)排序算法的平均時(shí)間復(fù)雜度為O(nlogn)?
A.冒泡排序
B.快速排序
C.插入排序
D.選擇排序
4.下列哪個(gè)算法是動(dòng)態(tài)規(guī)劃算法?
A.暴力算法
B.貪心算法
C.分治算法
D.動(dòng)態(tài)規(guī)劃算法
5.下列哪個(gè)數(shù)據(jù)結(jié)構(gòu)可以實(shí)現(xiàn)先進(jìn)先出?
A.鏈表
B.棧
C.隊(duì)列
D.樹
答案及解題思路:
1.答案:D
解題思路:貪心算法在每一步選擇中都采取當(dāng)前狀態(tài)下最好或最優(yōu)的選擇,以期望導(dǎo)致結(jié)果是全局最好或最優(yōu)的。最短路徑算法(如Dijkstra算法)通常采用貪心策略,因此選D。
2.答案:A
解題思路:鏈表允許在表中的任意位置插入和刪除元素,不需要移動(dòng)其他元素,因此可以快速進(jìn)行插入和刪除操作。
3.答案:B
解題思路:快速排序的平均時(shí)間復(fù)雜度為O(nlogn),它通過(guò)分治策略將大問(wèn)題分解為小問(wèn)題來(lái)解決。
4.答案:D
解題思路:動(dòng)態(tài)規(guī)劃算法是一種通過(guò)將復(fù)雜問(wèn)題分解為重疊子問(wèn)題并存儲(chǔ)這些子問(wèn)題的解來(lái)避免重復(fù)計(jì)算的方法。
5.答案:C
解題思路:隊(duì)列是一種先進(jìn)先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),元素按照它們被插入的順序離開隊(duì)列。棧是后進(jìn)先出(LIFO)的,而鏈表和樹不專門實(shí)現(xiàn)這種順序。二、填空題1.算法的五大基本特性是:有窮性、確定性、__________、可行性、擁有足夠的情報(bào)。
解答:輸入確定性
2.在二分查找算法中,每次查找都是將查找區(qū)間縮小為原來(lái)的一半,因此其時(shí)間復(fù)雜度為__________。
解答:O(logn)
3.快速排序算法中,選擇樞軸元素的方式有:隨機(jī)選擇、__________、中位數(shù)。
解答:首元素
4.動(dòng)態(tài)規(guī)劃算法的基本思想是將復(fù)雜問(wèn)題分解為若干個(gè)相互重疊的子問(wèn)題,然后按照__________的順序求解。
解答:自底向上
5.在以下數(shù)據(jù)結(jié)構(gòu)中,可以方便地進(jìn)行插入和刪除操作的是__________。
解答:鏈表
答案及解題思路:
1.算法的五大基本特性
答案:輸入確定性
解題思路:算法的五大基本特性指的是算法必須具有有窮性、確定性、輸入確定性、可行性和擁有足夠的情報(bào)。輸入確定性是指算法對(duì)于每個(gè)輸入都只能產(chǎn)生一個(gè)輸出。
2.二分查找算法的時(shí)間復(fù)雜度
答案:O(logn)
解題思路:二分查找每次將查找區(qū)間減半,因此查找次數(shù)對(duì)數(shù)呈對(duì)數(shù)關(guān)系,時(shí)間復(fù)雜度為O(logn)。
3.快速排序算法中樞軸元素選擇方式
答案:首元素
解題思路:快速排序中選擇樞軸元素有多種方式,其中之一是選擇首元素作為樞軸。這種方法簡(jiǎn)單,但可能會(huì)在極端情況下導(dǎo)致功能下降。
4.動(dòng)態(tài)規(guī)劃算法求解順序
答案:自底向上
解題思路:動(dòng)態(tài)規(guī)劃通過(guò)自底向上的方式求解子問(wèn)題,逐步構(gòu)建起整個(gè)問(wèn)題的解。這種方法可以避免重復(fù)計(jì)算,提高算法效率。
5.方便進(jìn)行插入和刪除操作的數(shù)據(jù)結(jié)構(gòu)
答案:鏈表
解題思路:鏈表允許在O(1)的時(shí)間復(fù)雜度內(nèi)進(jìn)行插入和刪除操作,這是因?yàn)殒湵碇械脑赝ㄟ^(guò)指針連接,無(wú)需移動(dòng)其他元素。三、簡(jiǎn)答題1.簡(jiǎn)述冒泡排序算法的基本思想和實(shí)現(xiàn)步驟。
冒泡排序算法的基本思想是通過(guò)重復(fù)遍歷要排序的數(shù)列,一次比較兩個(gè)元素,如果它們的順序錯(cuò)誤就把它們交換過(guò)來(lái)。遍歷數(shù)列的工作是重復(fù)進(jìn)行直到?jīng)]有再需要交換的元素為止,這意味著該數(shù)列已經(jīng)排序完成。
實(shí)現(xiàn)步驟:
(1)比較相鄰的元素。如果第一個(gè)比第二個(gè)大(升序排序),就交換它們兩個(gè)。
(2)對(duì)每一對(duì)相鄰元素做同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。這步做完后,最后的元素會(huì)是最大的數(shù)。
(3)針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。
(4)重復(fù)步驟(1)~(3),直到排序完成。
2.簡(jiǎn)述快速排序算法的基本思想和實(shí)現(xiàn)步驟。
快速排序算法的基本思想是選取一個(gè)“基準(zhǔn)”元素,然后將數(shù)列中所有的元素與這個(gè)基準(zhǔn)進(jìn)行比較,將小于基準(zhǔn)的元素放到基準(zhǔn)的左邊,大于基準(zhǔn)的元素放到基準(zhǔn)的右邊。這個(gè)過(guò)程稱為分區(qū)。然后遞歸地在基準(zhǔn)左右兩邊的子數(shù)列上重復(fù)這個(gè)過(guò)程。
實(shí)現(xiàn)步驟:
(1)從數(shù)列中挑出一個(gè)元素,稱為“基準(zhǔn)”。
(2)重新排序數(shù)列,所有元素比基準(zhǔn)值小的擺放在基準(zhǔn)前面,所有元素比基準(zhǔn)值大的擺在基準(zhǔn)的后面(相同的數(shù)可以到任一邊)。在這個(gè)分區(qū)退出之后,該基準(zhǔn)就處于數(shù)列的中間位置。這個(gè)稱為分區(qū)(partition)操作。
(3)遞歸地(recursive)把小于基準(zhǔn)值元素的子數(shù)列和大于基準(zhǔn)值元素的子數(shù)列排序。
3.簡(jiǎn)述歸并排序算法的基本思想和實(shí)現(xiàn)步驟。
歸并排序算法的基本思想是將一個(gè)序列分成兩個(gè)子序列,這兩個(gè)子序列都是有序的,然后將這兩個(gè)有序的子序列合并成一個(gè)序列,該序列是有序的。
實(shí)現(xiàn)步驟:
(1)將原序列分成長(zhǎng)度為1的子序列,這些子序列本身就是有序的。
(2)將兩個(gè)相鄰的子序列合并,形成一個(gè)新的序列,該序列是有序的。
(3)重復(fù)步驟(2),直到序列一個(gè)子序列,這個(gè)子序列就是有序的。
4.簡(jiǎn)述動(dòng)態(tài)規(guī)劃算法的基本思想和應(yīng)用場(chǎng)景。
動(dòng)態(tài)規(guī)劃算法的基本思想是將復(fù)雜問(wèn)題分解為相互重疊的子問(wèn)題,然后通過(guò)保存子問(wèn)題的解來(lái)避免重復(fù)計(jì)算,從而得到原問(wèn)題的解。
應(yīng)用場(chǎng)景:
動(dòng)態(tài)規(guī)劃適用于求解具有最優(yōu)子結(jié)構(gòu)性質(zhì)的問(wèn)題,如背包問(wèn)題、最長(zhǎng)公共子序列、最短路徑問(wèn)題等。
5.簡(jiǎn)述貪心算法的基本思想和應(yīng)用場(chǎng)景。
貪心算法的基本思想是在每一步選擇中都采取當(dāng)前狀態(tài)下最好或最優(yōu)的選擇,從而希望導(dǎo)致結(jié)果是全局最好或最優(yōu)的。
應(yīng)用場(chǎng)景:
貪心算法適用于在每一步都有最優(yōu)選擇的情況,如找零問(wèn)題、活動(dòng)選擇問(wèn)題、Huffman編碼等。
答案及解題思路:
1.答案:
基本思想:通過(guò)比較相鄰元素進(jìn)行交換,逐步將最大(或最?。┰匾浦列蛄卸它c(diǎn)。
實(shí)現(xiàn)步驟:遍歷數(shù)組,相鄰元素比較,交換,重復(fù)直到無(wú)交換。
解題思路:通過(guò)簡(jiǎn)單的比較和交換,逐步構(gòu)建有序序列。
2.答案:
基本思想:通過(guò)選擇一個(gè)基準(zhǔn)元素,分區(qū)排序,遞歸處理。
實(shí)現(xiàn)步驟:選擇基準(zhǔn),分區(qū),遞歸排序。
解題思路:通過(guò)遞歸地將問(wèn)題分解為更小的子問(wèn)題,并選擇最優(yōu)解。
3.答案:
基本思想:分解問(wèn)題為子問(wèn)題,通過(guò)合并有序子序列得到最終排序。
實(shí)現(xiàn)步驟:分解,排序,合并。
解題思路:分解問(wèn)題,解決子問(wèn)題,合并結(jié)果。
4.答案:
基本思想:將復(fù)雜問(wèn)題分解為相互重疊的子問(wèn)題,存儲(chǔ)子問(wèn)題的解以避免重復(fù)計(jì)算。
應(yīng)用場(chǎng)景:背包問(wèn)題、最長(zhǎng)公共子序列等。
解題思路:通過(guò)子問(wèn)題的最優(yōu)解來(lái)構(gòu)建原問(wèn)題的最優(yōu)解。
5.答案:
基本思想:每一步選擇當(dāng)前狀態(tài)下最好或最優(yōu)的選擇。
應(yīng)用場(chǎng)景:找零問(wèn)題、活動(dòng)選擇問(wèn)題等。
解題思路:在每一步選擇最優(yōu)解,逐步構(gòu)建全局最優(yōu)解。四、編程題1.實(shí)現(xiàn)一個(gè)冒泡排序算法,對(duì)給定數(shù)組進(jìn)行排序。
defbubble_sort(arr):
n=len(arr)
foriinrange(n):
forjinrange(0,ni1):
ifarr[j]>arr[j1]:
arr[j],arr[j1]=arr[j1],arr[j]
returnarr
2.實(shí)現(xiàn)一個(gè)快速排序算法,對(duì)給定數(shù)組進(jìn)行排序。
defquick_sort(arr):
iflen(arr)=1:
returnarr
pivot=arr[len(arr)//2]
left=[xforxinarrifxpivot]
middle=[xforxinarrifx==pivot]
right=[xforxinarrifx>pivot]
returnquick_sort(left)middlequick_sort(right)
3.實(shí)現(xiàn)一個(gè)歸并排序算法,對(duì)給定數(shù)組進(jìn)行排序。
defmerge_sort(arr):
iflen(arr)=1:
returnarr
mid=len(arr)//2
left=merge_sort(arr[:mid])
right=merge_sort(arr[mid:])
returnmerge(left,right)
defmerge(left,right):
result=
i=j=0
whileilen(left)andjlen(right):
ifleft[i]right[j]:
result.append(left[i])
i=1
else:
result.append(right[j])
j=1
result.extend(left[i:])
result.extend(right[j:])
returnresult
4.實(shí)現(xiàn)一個(gè)動(dòng)態(tài)規(guī)劃算法,計(jì)算斐波那契數(shù)列的第n項(xiàng)。
deffibonacci(n):
ifn=1:
returnn
dp=[0](n1)
dp[1]=1
foriinrange(2,n1):
dp[i]=dp[i1]dp[i2]
returndp[n]
5.實(shí)現(xiàn)一個(gè)貪心算法,求解背包問(wèn)題。
defknapsack(weights,values,capacity):
n=len(weights)
items=sorted(range(n),key=lambdai:values[i]/weights[i],reverse=True)
total_value=0
foriinitems:
ifcapacity>=weights[i]:
total_value=values[i]
capacity=weights[i]
returntotal_value
答案及解題思路:
1.冒泡排序:通過(guò)相鄰元素的比較和交換,逐步將數(shù)組中的元素移動(dòng)到正確的位置。
2.快速排序:選擇一個(gè)基準(zhǔn)值,將數(shù)組分為兩個(gè)子數(shù)組,使得左邊的元素都比基準(zhǔn)值小,右邊的元素都比基準(zhǔn)值大,然后遞歸地對(duì)這兩個(gè)子數(shù)組進(jìn)行快速排序。
3.歸并排序:將數(shù)組分為兩個(gè)子數(shù)組,分別對(duì)它們進(jìn)行歸并排序,然后合并這兩個(gè)有序子數(shù)組。
4.動(dòng)態(tài)規(guī)劃:使用動(dòng)態(tài)規(guī)劃的思想,計(jì)算斐波那契數(shù)列的第n項(xiàng),避免重復(fù)計(jì)算。
5.貪心算法:按照價(jià)值密度(價(jià)值/重量)對(duì)所有物品進(jìn)行排序,然后從價(jià)值密度最大的物品開始取,直到背包容量不足以存放下一個(gè)物品為止。五、應(yīng)用題1.利用動(dòng)態(tài)規(guī)劃算法求解最長(zhǎng)公共子序列問(wèn)題。
(1)題目描述:
給定兩個(gè)字符串str1和str2,找出兩個(gè)字符串的最長(zhǎng)公共子序列。
(2)輸入格式:
第一行輸入str1,第二行輸入str2。
(3)輸出格式:
輸出最長(zhǎng)公共子序列。
(4)代碼實(shí)現(xiàn):
deflongest_mon_subsequence(str1,str2):
m,n=len(str1),len(str2)
dp=[[0](n1)for_inrange(m1)]
foriinrange(1,m1):
forjinrange(1,n1):
ifstr1[i1]==str2[j1]:
dp[i][j]=dp[i1][j1]1
else:
dp[i][j]=max(dp[i1][j],dp[i][j1])
returndp[m][n]
測(cè)試用例
str1="ABCBDAB"
str2="BDCAB"
print(longest_mon_subsequence(str1,str2))
2.利用貪心算法求解最小樹問(wèn)題。
(1)題目描述:
給定一個(gè)無(wú)向圖,求出這個(gè)圖的最小樹。
(2)輸入格式:
第一行輸入圖的頂點(diǎn)數(shù)V,第二行輸入V個(gè)頂點(diǎn)的信息,V(V1)/2行輸入邊的權(quán)值。
(3)輸出格式:
輸出最小樹的邊及權(quán)值。
(4)代碼實(shí)現(xiàn):
defmin_spanning_tree(edges):
創(chuàng)建一個(gè)邊集合,存儲(chǔ)所有邊
edge_set=set()
foredgeinedges:
edge_set.add(tuple(sorted(edge)))
創(chuàng)建一個(gè)頂點(diǎn)集合,存儲(chǔ)所有頂點(diǎn)
vertex_set=set()
foredgeinedges:
vertex_set.update(edge)
創(chuàng)建一個(gè)最小樹的邊列表
mst_edges=
按權(quán)值從小到大排序邊集合
sorted_edges=sorted(edge_set,key=lambdax:x[2])
遍歷排序后的邊集合,選擇最小樹的邊
foredgeinsorted_edges:
ifedge[0]notinvertex_setoredge[1]notinvertex_set:
continue
mst_edges.append(edge)
vertex_set.update(edge)
returnmst_edges
測(cè)試用例
edges=[
(0,1,1),(0,2,3),(0,3,2),
(1,2,1),(1,3,4),(2,3,3)
]
print(min_spanning_tree(edges))
3.利用分治算法求解漢諾塔問(wèn)題。
(1)題目描述:
給定一個(gè)盤子數(shù)量N,將盤子從A塔移動(dòng)到C塔,每次只能移動(dòng)一個(gè)盤子,并且每次移動(dòng)的盤子必須在較小的盤子上面。
(2)輸入格式:
輸入一個(gè)整數(shù)N。
(3)輸出格式:
輸出移動(dòng)盤子的步驟。
(4)代碼實(shí)現(xiàn):
defhanoi(n,start,target,aux):
ifn==1:
print(f"Movedisk1from{start}to{target}")
return
hanoi(n1,start,aux,target)
print(f"Movedisk{n}from{start}to{target}")
hanoi(n1,aux,target,start)
測(cè)試用例
n=3
hanoi(n,'A','C','B')
4.利用二分查找算法在一個(gè)有序數(shù)組中查找一個(gè)元素。
(1)題目描述:
給定一個(gè)有序數(shù)組arr和一個(gè)整數(shù)target,在數(shù)組中查找target。
(2)輸入格式:
第一行輸入數(shù)組長(zhǎng)度N,第二行輸入N個(gè)整數(shù),第三行輸入target。
(3)輸出格式:
輸出查找結(jié)果,若找到則輸出target在數(shù)組中的索引,否則輸出1。
(4)代碼實(shí)現(xiàn):
defbinary_search(arr,target):
left,right=0,len(arr)1
whileleft=right:
mid=(leftright)//2
ifarr[mid]==target:
returnmid
elifarr[mid]target:
left=mid1
else:
right=mid1
return1
測(cè)試用例
arr=[1,2,3,4,5,6,7,8,9]
target=7
print(binary_search(arr,target))
5.利用鏈表實(shí)現(xiàn)一個(gè)棧,并實(shí)現(xiàn)入棧、出棧、判斷??盏炔僮?。
(1)題目描述:
使用鏈表實(shí)現(xiàn)一個(gè)棧,包括入棧、出棧、判斷棧空等操作。
(2)輸入格式:
第一行輸入棧的長(zhǎng)度N,N行輸入元素。
(3)輸出格式:
依次輸出入棧、出棧操作的結(jié)果。
(4)代碼實(shí)現(xiàn):
classNode:
def__init__(self,value):
self.value=value
self.next=None
classStack:
def__init__(self):
self.head=None
defpush(self,value):
new_node=Node(value)
new_node.next=self.head
self.head=new_node
defpop(self):
ifself.headisNone:
returnNone
value=self.head.value
self.head=self.head.next
returnvalue
defis_empty(self):
returnself.headisNone
測(cè)試用例
stack=Stack()
foriinrange(1,6):
stack.push(i)
whilenotstack.is_empty():
print(stack.pop())
答案及解題思路:
1.利用動(dòng)態(tài)規(guī)劃算法求解最長(zhǎng)公共子序列問(wèn)題。
答案:最長(zhǎng)公共子序列為"BCAB",長(zhǎng)度為4。
解題思路:通過(guò)比較兩個(gè)字符串的字符,將問(wèn)題分解為子問(wèn)題,然后遞歸地解決子問(wèn)題,最終得到整個(gè)問(wèn)題的解。
2.利用貪心算法求解最小樹問(wèn)題。
答案:最小樹的邊為[(0,1,1),(0,2,3),(1,2,1),(1,3,4)]。
解題思路:按權(quán)值從小到大排序邊集合,然后遍歷排序后的邊集合,選擇最小樹的邊。
3.利用分治算法求解漢諾塔問(wèn)題。
答案:移動(dòng)盤子的步驟為:
1.Movedisk1fromAtoC
2.Movedisk2fromAtoB
3.Movedisk1fromCtoB
4.Movedisk3fromAtoC
5.Movedisk1fromBtoA
6.Movedisk2fromBtoC
7.Movedisk1fromAtoC
解題思路:將問(wèn)題分解為子問(wèn)題,即先移動(dòng)N1個(gè)盤子,再移動(dòng)第N個(gè)盤子,最后移動(dòng)N1個(gè)盤子。
4.利用二分查找算法在一個(gè)有序數(shù)組中查找一個(gè)元素。
答案:target在數(shù)組中的索引為6。
解題思路:將有序數(shù)組分為左右兩部分,根據(jù)target與中間值的比較結(jié)果確定查找方向,直到找到target或遍歷完數(shù)組。
5.利用鏈表實(shí)現(xiàn)一個(gè)棧,并實(shí)現(xiàn)入棧、出棧、判斷棧空等操作。
答案:輸出入棧、出棧操作的結(jié)果為1234554321。
解題思路:利用鏈表實(shí)現(xiàn)棧的數(shù)據(jù)結(jié)構(gòu),入棧操作將新節(jié)點(diǎn)插入鏈表頭部,出棧操作刪除鏈表頭部節(jié)點(diǎn)。六、算法分析題1.分析冒泡排序算法的時(shí)間復(fù)雜度和空間復(fù)雜度。
冒泡排序是一種簡(jiǎn)單的排序算法,它重復(fù)地遍歷要排序的數(shù)列,一次比較兩個(gè)元素,如果它們的順序錯(cuò)誤就把它們交換過(guò)來(lái)。遍歷數(shù)列的工作是重復(fù)地進(jìn)行,直到?jīng)]有再需要交換的元素為止,也就是說(shuō)該數(shù)列已經(jīng)排序完成。
時(shí)間復(fù)雜度:
最好情況(已排序):O(n)
平均情況:O(n^2)
最壞情況(逆序):O(n^2)
空間復(fù)雜度:O(1),因?yàn)槊芭菖判蚴窃嘏判蛩惴?,不需要額外的存儲(chǔ)空間。
2.分析快速排序算法的時(shí)間復(fù)雜度和空間復(fù)雜度。
快速排序是一種分而治之的排序算法,它將大問(wèn)題分解為小問(wèn)題來(lái)解決??焖倥判蚴褂靡粋€(gè)分區(qū)操作,將數(shù)組分為兩部分,其中一部分的所有元素都比另一部分的所有元素小。
時(shí)間復(fù)雜度:
最好情況:O(nlogn)
平均情況:O(nlogn)
最壞情況:O(n^2)(當(dāng)每次分區(qū)都極端不平衡時(shí))
空間復(fù)雜度:O(logn),因?yàn)榭焖倥判蚴沁f歸實(shí)現(xiàn)的,遞歸棧的深度取決于分區(qū)的大小,平均情況下是O(logn)。
3.分析歸并排序算法的時(shí)間復(fù)雜度和空間復(fù)雜度。
歸并排序是一種分而治之的算法,它將數(shù)組分成兩半,遞歸地對(duì)它們進(jìn)行排序,然后將排序好的兩半合并起來(lái)。
時(shí)間復(fù)雜度:O(nlogn),無(wú)論最好、平均還是最壞情況。
空間復(fù)雜度:O(n),因?yàn)闅w并排序需要與原數(shù)組相同大小的空間來(lái)合并子數(shù)組。
4.分析動(dòng)態(tài)規(guī)劃算法的時(shí)間復(fù)雜度和空間復(fù)雜度。
動(dòng)態(tài)規(guī)劃是一種在數(shù)學(xué)、管理科學(xué)、計(jì)算機(jī)科學(xué)、經(jīng)濟(jì)學(xué)和生物信息學(xué)中使用的,通過(guò)把原問(wèn)題分解為相對(duì)簡(jiǎn)單的子問(wèn)題的方式求解復(fù)雜問(wèn)題的方法。
時(shí)間復(fù)雜度:取決于子問(wèn)題的數(shù)量和每個(gè)子問(wèn)題的計(jì)算復(fù)雜度。
空間復(fù)雜度:取決于存儲(chǔ)子問(wèn)題解的數(shù)組或數(shù)據(jù)結(jié)構(gòu)的大小。
5.分析貪心算法的時(shí)間復(fù)雜度和空間復(fù)雜度。
貪心算法通過(guò)在每一步選擇當(dāng)前最優(yōu)解的方法來(lái)求解問(wèn)題,它不保證得到最優(yōu)解,但通常可以得到較好的解。
時(shí)間復(fù)雜度:貪心算法的時(shí)間復(fù)雜度取決于問(wèn)題的特性,可以從O(1)到O(n^2)不等。
空間復(fù)雜度:貪心算法的空間復(fù)雜度取決于問(wèn)題的特性,可以從O(1)到O(n)不等。
答案及解題思路:
答案:
1.冒泡排序:時(shí)間復(fù)雜度O(n^2),空
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 租賃商場(chǎng)場(chǎng)地合同
- 公司員工激勵(lì)演講稿
- 養(yǎng)老護(hù)理行業(yè)老年人照護(hù)需求評(píng)估
- 肉羊養(yǎng)殖購(gòu)銷合同
- 生物醫(yī)藥領(lǐng)域新藥研發(fā)投資合同
- 有關(guān)個(gè)人向公司借款協(xié)議書
- 城市道路施工安全管理規(guī)定
- 好品質(zhì)故事解讀
- 電影制作公司演員拍攝安全協(xié)議
- 2025年漢語(yǔ)拼音yw助力企業(yè)營(yíng)銷策略分析
- 巨量千川營(yíng)銷師(初級(jí))認(rèn)證考試題(附答案)
- 《智能制造技術(shù)基礎(chǔ)》課件-第5章 智能制造系統(tǒng)
- 蘇教版科學(xué)五年級(jí)下冊(cè)全冊(cè)教案(含反思)
- 水下拋石施工方案
- 《法官檢察官》課件
- 《優(yōu)衣庫(kù)公司基層員工培訓(xùn)現(xiàn)狀及問(wèn)題研究(9400字)》
- 2024年度網(wǎng)易游戲開發(fā)與發(fā)行合同6篇
- 高考語(yǔ)文復(fù)習(xí):分析小說(shuō)人物心理 課件
- 圖解自然資源部《自然資源領(lǐng)域數(shù)據(jù)安全管理辦法》
- 2023-2024學(xué)年廣東省廣州市天河區(qū)七年級(jí)(上)期末英語(yǔ)試卷
- 2024-2030年中國(guó)液晶顯示模組行業(yè)發(fā)展趨勢(shì)與前景規(guī)劃分析報(bào)告
評(píng)論
0/150
提交評(píng)論