選擇排序
假定第一個為最小的為已排序序列,與后面的比較,找到未排序序列中最小的后,交換位置,獲得最小元素,依次往后
lst=[1,14,25,31,21,13,6,8,14,9,7]
def selection_sort(lst):for i in range(len(lst)):min_index=ifor j in range(i+1,len(lst)):if lst[min_index]>lst[j]:min_index=jlst[min_index],lst[i]=lst[i],lst[min_index]return lst
print(selection_sort(lst))
插入排序
假設第一個元素為已排序列,后面為未排序列,將未排序列中最左邊的元素與已排序列從大到小每個元素比較,找到合適位置插入
lst=[1,14,25,31,21,13,6,8,14,9,7]
def insert_sort(lst):for i in range(1,len(lst)):key=lst[i]#未排序列最左邊元素j=i-1#已排序列最大元素索引while j>=0:if lst[j]>key:lst[j+1]=lst[j]#向后挪lst[j]=keyj-=1return lst
print(insert_sort(lst))
刪除字符
str="sajdosdajidsaiojdasjaaascsovsvnosfnei"
sub="abc"
ans=""
for i in str:if i in sub:ans+=i
print(ans)
目標移動
保持其他序列順序的同時將目標值移動到最前面
nums=[1,1,2,3,4,5,1,2,4,6,8,7,9]
print(nums)
target=int(input())
def func(nums,target):ans=[]count=0for i in nums:if i != target:ans.append(i)count+=1nums2=[target for i in range(len(nums)-count)]nums2.extend(ans)return nums2
print(func(nums,target))
尾部的0
n的階乘尾部0的個數,取決于n的階乘中10的個數,而10=2*5,有5一定會出現2,即取決于5的個數
n=int(input())
def search(n):count=0for i in range(5,n+1,5):while i%5==0:i//=5count+=1return count
print(search(n))