1. 程式人生 > 實用技巧 >Intel-Pin的windows安裝

Intel-Pin的windows安裝

1.插入排序(insertion sort)

  解釋:是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。

def insertion_sort(arr):
    for i in range(1,len(arr)):
        key = arr[i]
        j = i-1
        while j >= 0 and key < arr[j]:
            arr[j+1] = arr[j]
            j -= 1
        arr[j+1] = key



arr 
= [] # 建一個列表 insertion_sort(arr) print("排序後的陣列:") for i in range(len(arr)) print(f"{arr[i]}")

2.快速排序(divide and conquer)

  解釋:使用分治法把一個序列分為較小和較大的兩個子序列,然後遞迴地排序兩個子序列(遞迴:執行的過程中呼叫自己)

def partition(arr,low,high): 
    i = ( low-1 )         # 最小元素索引
    pivot = arr[high]     
  
    for j in range(low , high): 
  
        
# 當前元素小於或等於 pivot if arr[j] <= pivot: i = i+1 arr[i],arr[j] = arr[j],arr[i] arr[i+1],arr[high] = arr[high],arr[i+1] return ( i+1 ) # arr[] --> 排序陣列 # low --> 起始索引 # high --> 結束索引 # 快速排序函式 def quickSort(arr,low,high):
if low < high: pi = partition(arr,low,high) quickSort(arr, low, pi-1) quickSort(arr, pi+1, high) arr = [10, 7, 8, 9, 1, 5] n = len(arr) quickSort(arr,0,n-1) print ("排序後的陣列:") for i in range(n): print ("%d" %arr[i]),

3.選擇排序(selection sort)

  解釋:是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

import sys 
A = [64, 25, 12, 22, 11] 
  
for i in range(len(A)): 
      
   
    min_idx = i 
    for j in range(i+1, len(A)): 
        if A[min_idx] > A[j]: 
            min_idx = j 
                
    A[i], A[min_idx] = A[min_idx], A[i] 
  
print ("排序後的陣列:") 
for i in range(len(A)): 
    print("%d" %A[i])

4.氣泡排序(bubble sort)

  解釋:也是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢"浮"到數列的頂端。

def bubbleSort(arr):
    n = len(arr)
 
    # 遍歷所有陣列元素
    for i in range(n):
 
        # Last i elements are already in place
        for j in range(0, n-i-1):
 
            if arr[j] > arr[j+1] :
                arr[j], arr[j+1] = arr[j+1], arr[j]
 
arr = [64, 34, 25, 12, 22, 11, 90]
 
bubbleSort(arr)
 
print ("排序後的陣列:")
for i in range(len(arr)):
    print ("%d" %arr[i]),