學弟講演算法 排序 冒泡 插入 快速 堆排序合集

2021-10-07 08:48:07 字數 1303 閱讀 1209

//氣泡排序,len為陣列長度

template

void

bubblesort

(vector data)

}//如果此輪沒有發生交換,則說明已完成排序

if(exchange == false)

}}

template

void

insertsort

(vector data)

//此處就是為插入temp留出的空(退出迴圈時j會多減1)

data[j+1]

= temp;}}

}

template

void selectsort (vector data)

}//如果基準碼不是開始的那個,說明現位置的元素最小

if(index != i)

}}

//left,reight代表陣列左右區間大小

template

void

quicksort

(vector data,

int left,

int right)}}

//基準元素就位,基準位為index

data[left]

= data[index]

; data[index]

= pivot;

if(left < right)

}

//調整為小根堆函式;start,end 表示待建堆區間

template

void

siftdown

(vector data,

int start,

int end)

// 如果根節點比兒子節點小,則不需要調整

if(temp >= data[child]

)//否則需調整兒子和雙親的位置

data[parent]

= data[child]

;//兒子上移變為雙親

parent = child;

child =

2*child+1;

} data[parent]

= temp;

}//堆排序函式

template

void

heapsort

(vector data)

for(

int i = len-

1; i>

0; i--

)}

PHP常用排序演算法 氣泡排序 快速排序 插入排序

氣泡排序 兩兩交換數值,最小的值在最左邊,就如最輕的氣泡在最上邊。對整列數兩兩交換一次,最小的數在最左邊,每次都能得乙個在剩下的數中的最小 的數,冒 出來的數組成乙個有序區間,剩下的值組成一無序區間,且有序區間中每一元素值都比無序區間的小。快速排序 基準數,左右二個陣列,遞迴呼叫,合併。插入排序 排...

排序演算法 冒泡 插入 歸併 快排

整理了一下幾種常見的排序演算法,包括冒泡 插入 歸併 快排。還有另外幾種待整理 堆排序 希爾排序 桶排序 直接上 include include include using namespace std void swap int a,int b 最簡單的氣泡排序,時間複雜度o n n void bu...

(冒泡,選擇,插入,歸併,堆排,二分查詢)排序演算法

氣泡排序 每次把陣列中最大的數字沉入陣列的最低處 時間複雜度是o n 2 include using namespace std int main int n sizeof a sizeof int for int i 0 ia j 1 for int i 0 i快速排序 快速排序的思想 1 選取乙...