//氣泡排序,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 選取乙...