1、選擇排序
2、插入排序
3、氣泡排序
4、希爾排序(插入排序的改進)
一、選擇排序
**:
def selectionsort(arr):
for i in range(len(arr)):
minindex=i
for j in range(i,len(arr)):
if arr[j] < arr[minindex]:
minindex = j
arr[i],arr[minindex]=arr[minindex],arr[i]
return arr
a=[3,5,6,2,6]
print selectionsort(a)
二、插入排序
**:
def insertionsort(arr):
for i in range(1,len(arr)):
# print i
for j in reversed(range(1,i+1)):
if arr[j] < arr[j-1]:
arr[j],arr[j-1] =arr[j-1],arr[j]
else:
break
return arr
a=[3,5,6,2,6,6,5,3,2,1,5,6,7,8,9,5,4,3,2]
print insertionsort(a)
三、氣泡排序
**:
def bubblesort(nums):
for i in range(len(nums)-1): # 這個迴圈負責設定氣泡排序進行的次數
for j in range(len(nums) - i - 1): # j為列表下標
if nums[j] > nums[j + 1]:
nums[j], nums[j + 1] = nums[j + 1], nums[j]
return nums
a=[3,5,6,2,6,6,5,3,2,1,5,6,7,8,9,5,4,3,2]
print bubblesort(a)
四、希爾排序(插入排序的改進)
**:
def shellsort(arr):
n=len(arr)
h=1while h=1:
for i in range(h,n):
j=iwhile j>=h and arr[j] < arr[j-h]:
arr[j], arr[j-h] = arr[j-h], arr[j]
j-=h
h=h/3
return arr
a=[3,5,6,2,6,6,5,3,2,1,5,6,7,8,9,5,4,3,2]
print shellsort(a)
1、 資料結構與演算法之排序
三 演算法效能 二 七種排序演算法 資料結構之線性表 資料結構之鍊錶 資料結構之串 資料結構之圖 資料結構之排序演算法 對n個資料執行某種操作,使其按照某種規則有序的排列,這樣的操作就是排序。內排序與外排序 按照排序過程中資料是否全放在記憶體中,可以分為內排序和外排序 交插選並 其中內排序又分為插入...
《資料結構與演算法》之排序
資料結構與演算法 之鍊錶 資料結構與演算法 之鏈棧 資料結構與演算法 之佇列 資料結構與演算法 之二分查詢 資料結構與演算法 之二叉樹 如果你是一名程式設計師,或多或少你都了解過 聽說過排序。在專案中我們也會經常用到排序,排序非常重要,現在我在這裡分享一些經典的排序演算法。先附上demo位址 氣泡排...
資料結構之排序演算法(一)
public class sort 選擇排序 param arr return 不穩定 初始時在序列中找到最小 大 元素,放到序列的起始位置作為已排序序列 然後,再從剩餘未排序元素中繼續尋找最小 大 元素,放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。public static void ...