常見的演算法

2022-08-01 03:12:11 字數 1448 閱讀 6502

private

static

int binarysearch(int list,int

target)

else

if(target >list[mid])

else

if(target ==list[mid])

}return -1

; }

public

static

void bubblesort(int

arr) }}

}

基本思想是將要排序的資料分割成獨立的兩部分 ,其中一部分的所有資料都比另外一部分的所有資料都要小 ,然後在按照此方法對兩部分資料分別進行快速排序 ,最終得到乙個有序的序列。

private

static

void quicksort(int a, int low, int

high)

int i =low;

int j =high;

//預設 key

int key =a[low];

//開始一趟排序

while( i //從左往右找到第乙個大於等於 key 的數

while( ikey)

//交換,達到以 key 「分治」 的效果

if(i}

//當 i = j 時,調整 key 的值為 a[i] == a[j]

int temp =a[i];

a[i] =a[low];

a[low] =temp;

//對 key 左邊的數快速排序

quicksort(a, low, i-1

);

//對 key 右邊的數快速排序

quicksort(a, i+1

, high);

}

假設要排的陣列為:int a = ;

選擇 key = 5, 開始時 i = 0,j = 7

下標 01

2345

67開始 52

8923

49i j

第一次找 52

8923

49i j

交換: 52

4923

89i j

第二次找 52

4923

89i j

交換: 52

4329

89i j

第三次找 52

4329

89ij調整key: 25

4359

89ij

常見的演算法

演算法衡量的標準 1.時間複雜度 兩個程式的執行時間如何衡量?答 用time模組來判斷,time.time 來進行計算,前提是兩段程式必須執行在同乙個硬體相同 cpu 的環境下,才會有意義 因此,我們使用時間差的方式來衡量乙個程式是否快慢沒有任何的意義。所以使用程式執行的大概次數,來衡量程式的執行快...

常見的排序演算法

一 氣泡排序 include include void swap int a,int b void bubblesort int arr,int size int main void bubblesort a,5 for int i 0 i 5 i cout 二 選擇排序 void selectio...

常見的排序演算法

需要包含的標頭檔案 include stdafx.h include include include 氣泡排序是穩定排序 時間複雜度 o n 2 void swap int a,int b void bubblesort int a,int n void printnum int a,int n a...