1.快速排序
//快速排序
void quick_sort(vector&nums)
void quick_sort(vector&nums,int start,int end)
//**簡易,易理解的實現
int partition(vector&nums,int start,int end)
swap(nums[l],nums[end]);
return l;
}
2.歸併排序
//歸併排序
void merge_sort(vector&nums)
void merge_sort(vector&nums,vector&tmp,int start ,int end)
int mid,l,r,mer;
mid = (start+end)/2;
//遞迴
merge_sort(nums,tmp,start,mid);
merge_sort(nums,tmp,mid+1,end);
//合併至臨時空間
l = start;
r = mid+1;
mer = start;
while(l<=mid && r<=end)
while(l<=mid)
tmp[mer++] = nums[l++];
while(r<=end)
tmp[mer++] = nums[r++];
//複製回原陣列
for(int i = start;i<=end;i++)
nums[i] = tmp[i];
return ;
}
3.堆排序
//堆排序
void heap_sort(vector&nums)
return;
}//調整函式,將x下標對應的元素做下沉調整
void adjust(vector&nums,int len,int x)
if(lnums[x])
return ;
}return ;
}
面試常見演算法 排序查詢演算法
常見面試問題總結目錄 演算法是程式設計師必被的乙個技能,在面試中常常出現,下面總結了面試中出現的常見演算法,這些演算法程式設計師應該牢記在心中,要非常熟練。原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。要點 ...
常見排序演算法的實現
在電腦科學與數學中,排序演算法是一種基本並且常用的演算法,乙個排序演演算法是一種能將一串資料依照特定排序方式的一種演演算法。有效的排序演演算法在一些演算 法中是重要的,如此這些演演算法才能得到正確解答。排序演演算法也用在處理文字資料以及產生人類可讀的輸出結果。由於實際工作中處理的數量巨大,所以排序演...
C 實現常見排序演算法
本程式參考了網上各位大牛和資料結構中的程式,vs2005執行通過,如有問題,請各位大牛指正。實現的排序有 直接插入排序 折半插入排序 希爾排序 氣泡排序 快速排序 選擇排序 堆排序等等 include using namespace std const int len 100 class csort...