# coding=utf-8
import sys
#使用以下語句將引數的str格式轉換為int格式
l=list
(map
(int
,sys.argv[1]
.split(
",")))
target=
int(sys.argv[2]
)def
binarysearch()
:print
(l)print
(target)
left=
0 right=
len(l)-1
while left<=right:
mid=
(left+right)//2
if l[mid]
< target:
left=mid+
1elif l[mid]
> target:
right=mid-
1else
:return mid
return-1
defmain()
:print
("查詢的關鍵字位於列表的索引:"
,binarysearch())
if __name__ ==
'__main__'
: main(
)
import sys
l=list
(map
(int
,(sys.argv[1]
.split(
",")))
)def
merge
(left,right)
: merged=
i,j=0,
0 left_len,right_len=
len(left)
,len
(right)
while iif left[i]
<=right[j]:)
i+=1else:)
j+=1 merged.extend(left[i:])
merged.extend(right[j:])
return merged
defmergesort
(a):if(
len(a)
<=1)
:return a
mid=
len(a)//2
left=mergesort(a[
:mid]
) right=mergesort(a[mid:])
return merge(left,right)
if __name__ ==
'__main__'
: l=mergesort(l)
print
(l)
import sys
l=list
(map
(int
,(sys.argv[1]
.split(
",")))
)def
selectionsort()
:for i in
range(0
,len
(l))
: m=i
for j in
range
(i+1
,len
(l))
:if l[j]
: m=j
l[m]
,l[i]
=l[i]
,l[m]
print
(l)if __name__ ==
'__main__'
: selectionsort(
)
import sys
l=list
(map
(int
,sys.argv[1]
.split(
",")))
defquicksort
(a,low,high)
: i=low
j=high
if i>=j:
#如果下屆大於等於上界,返回結果列表a
return a
key=a[i]
while iwhile i>=key:
j-=1 a[i]
=a[j]
while i<=key:
i+=1 a[j]
=a[i]
a[i]
=key
quicksort(a,low,i-1)
quicksort(a,j+
1,high)
if __name__ ==
'__main__'
: quicksort(l,0,
len(l)-1
)print
(l)
import sys
l=list
(map
(int
,sys.argv[1]
.split(
",")))
class
stack
:def
__init__
(self,l)
: self.stack=l
defpush
(self,obj)
:def
pop(self)
:try
:return self.stack.pop(
)except indexerror as e:
print
("stack is empty"
)def
__str__
(self)
:return
str(self.stack)
defmain()
:#命令列接受9個引數建立棧
stack=stack(l)
print
(stack)
#壓入整數10
stack.push(10)
print
(stack)
#9,10出棧
stack.pop(
) stack.pop(
)print
(stack)
if __name__ ==
'__main__'
: main(
)
import random
a=set()
b=set()
i=0while
(i<10)
: a.add(random.randint(0,
10)) b.add(random.randint(0,
10)) i+=
1print
('集合a的內容:'
,a,',長度:'
,len
(a),
',最大值:'
,max
(a),
',最小值:'
,min
(a))
print
('集合b的內容:'
,b,',長度:'
,len
(b),
',最大值:'
,max
(b),
',最小值:'
,min
(b))
print
('交集:'
,a.intersection(b)
)print
('並集:'
,a.union(b)
)print
('差集'
,a.difference(b)
)
資料結構與演算法 python
元類 基礎 冒泡 它重複地走訪要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢 浮 到數列的頂端,故名氣泡排序。def bubble sort alist ...
python演算法與資料結構
若n1 n2 n3 1000,且n1平方 n2平方 n3平方 n1,n2,n3為自然數 求出所有n1 n2 n3可能的組合?n1 0 n2 0 n3 0 判斷n1 n2 n3是否等於1000,之後變n3 1,n3 2,n3 3,然後再變n2 那如果變為 n1 n2 n3 2000 了呢?思路1 實現...
python資料結構與演算法
又稱儲存結構 順序結構 邏輯結構相鄰,物理結構也相鄰 鏈式結構 邏輯相鄰,物理不一定相鄰 集合結構 同屬乙個整體,但是每個元素之間沒有關係 線性結構 隊尾元素沒有直接後繼,隊頭元素沒有直接前驅 其他元素有唯一的直接前驅和後繼 一對一 樹形結構 除了根元素,其他元素都有乙個前驅和多個後繼 一對多 圖形...