1. 程式人生 > 實用技巧 >面試題:能談談Date、Datetime、Time、Timestamp、year的區別嗎?

面試題:能談談Date、Datetime、Time、Timestamp、year的區別嗎?

1.氣泡排序法

Num=[18,8,7,2,3,6,1,1]
i=0
compare=0                    #比較元素初始值
Num_len=len(Num)            #獲取列表長度
while i<Num_len:
    j=1                #迴圈控制變數
    while j<Num_len-i:   #迴圈一遍長度-1
        if Num[j-1]>Num[j]:
            compare=Num[j-1]
            Num[j-1]=Num[j]
            Num[j]=compare
        j+=1
    i+=1
print(Num)

#列印結果[1, 1, 2, 3, 6, 7, 8, 18]

2.二分查詢法(需為有序集合)

Num=[1,1,2,3,6,7,8,18]
low=0
high=len(Num)-1  #上下界
find_value=8
find_OK=False   #True為找到元素
i=1             #統計查詢次數
while low<high:
    middle=int((low+high)/2)   #int取整避免浮點數
    if find_value==Num[middle]:
        find_OK=True                  #設定找到標誌為True
        break
    elif find_value>Num[middle]:      #未找到,要找的範圍大於中位值時
        low=middle+1
    elif find_value<Num[middle]:      #未找到,要找的範圍小於中位值時
        high=middle-1
    i+=1
if find_OK:
    print("%d在列表下標%d處查找了%d次" %(find_value,middle,i))
else:
    print("要找的數%d沒有,找了%d次" %(find_value,i))