python學習演算法(1)
# 樹的先序遍歷,先列印出當前值,再一直遍歷樹的左孩子,如果是空則跳過
class Node(object):
def __init__(self,value,left=None,right=None):
self.value=value
self.left=left
self.right=right
def pre(self):
if(self!=None):
print(self.value)
pre(self.left)
pre(self.right)
tree=Node(7,Node(6),Node(64))
pre(tree)
#氣泡排序,核心就是先找出第一個再所有中最小的,再移到後面,找出第二個最小的
a=[1,3,4,2,7,6]
def bubble_sort(array):
for i in range(len(array)-1):
for j in range(len(array)-i-1):
if(array[j+1]<array[j]):
# temp=array[j]
# array[j]=array[j+1]
# array[j+1]=temp
array[j+1],array[j]=array[j],array[j+1]
return array
print(a)
bubble_sort(a)
print(a)
#選擇排序,選出最小的 放在前面
a=[1,3,4,2,7,6]
for s in range(len(a)):
print(s)
def selected_sort(array):
for i in range(len(array)-1):
index=i
for j in range(i+1,len(array)):
if(array[index]>array[j]):
index=j
array[i],array[index]=array[index],array[i]
return array
print(a)
selected_sort(a)
print(a)
#快速排序,以最後一個數字為基準,將後面的數字比基準大的排後面,比基準小的排前面。這樣就分成了兩個陣列,對兩個陣列重複操作,直至剩下一個數字
a=[2,3,1,4,7,5,6]
def QuickSort(array,left,right):
if(left<right):
i=Partition(array,left ,right)
QuickSort(array,left,i)
QuickSort(array,i+1,right)
# index的作用是記錄比基準數小的個數-1,方便陣列下標,array[index],array[i]=array[i],array[index] 的作用是把基準小的移到前面,這樣便於分成兩個陣列
def Partition(array,left ,right):
index=left-1
for i in range(left,right):
if(array[i]<=array[right]):
index+=1
array[index],array[i]=array[i],array[index]
array[index+1],array[right]=array[right],array[index+1]
return index
print(a)
QuickSort(a,0,len(a)-1)
print(a)
相關文章
- Python演算法學習1-Python基礎Python演算法
- python學習1Python
- Python機器學習 預測分析核心演算法1Python機器學習演算法
- 【Python】Django學習1PythonDjango
- python tkinter學習(1)Python
- Python_演算法學習Python演算法
- python學習筆記(1Python筆記
- python基礎學習1Python
- python爬蟲學習1Python爬蟲
- 演算法中級學習1演算法
- Python遷移學習:機器學習演算法Python遷移學習機器學習演算法
- python菜鳥教程學習1:背景性學習Python
- 學習 python logging(1): 基本用法Python
- 1.學習python思路圖Python
- python學習之路—day1Python
- 演算法基礎提升學習1演算法
- python機器學習演算法——KNN演算法Python機器學習演算法KNN
- Python演算法學習2-序列Python演算法
- 如何學習python遺傳演算法?Python演算法
- Python學習-字串函式操作1Python字串函式
- 【python 物件導向】 python物件學習筆記《1》Python物件筆記
- 【Python機器學習實戰】聚類演算法(1)——K-Means聚類Python機器學習聚類演算法
- 動態規劃演算法(DP)學習<1>動態規劃演算法
- Python從0到1的學習之道Python
- 學習Python的日子 Linux筆記(1)PythonLinux筆記
- python機器學習筆記:EM演算法Python機器學習筆記演算法
- Python語言的排序演算法有哪些?Python學習班!Python排序演算法
- 【Python機器學習實戰】決策樹與整合學習(三)——整合學習(1)Python機器學習
- 機器學習筆記(1): 梯度下降演算法機器學習筆記梯度演算法
- Python 學習筆記-2-1-變數Python筆記變數
- 1.Spark學習(Python版本):Spark安裝SparkPython
- python學習筆記1—python的基本資料型別Python筆記資料型別
- [譯] Python 中的無監督學習演算法Python演算法
- 第四百一十四節,python常用演算法學習Python演算法
- 學習python多久?該如何學習python?Python
- 演算法學習筆記1語法 (C++組)演算法筆記C++
- 【Python學習筆記1】Python網路爬蟲初體驗Python筆記爬蟲
- 【機器學習】機器學習建立演算法第1篇:機器學習演算法課程定位、目標【附程式碼文件】機器學習演算法