排序是資料結構中重要的內容,也是面試過程中經常涉及的部分。在這裡,我給出幾個基本的排序演算法的c/c++**。對於具體的排序的原理,不做太多的介紹,隨便找一本資料結構教材都能弄清楚。
##宣告:
1、以下給出的**並沒有判斷邊界條件,只是給出了演算法的核心**,如果遇到具體的問題,應該加以判斷。
2、演算法實現的是公升序排列。
#1、插入排序
##1、直接插入排序
void insertsort(int* a, int n)
}}
##2、希爾排序
void shellsort( int* a, int n )
} if (flag==false)
return;
}}
##2、快速排序
void quicksort( int* a, int low, int high )
}void buildmaxheap( int* a, int n )
}void adjustdown( int* a, int k, int n ) // 將元素k向下調整
} a[k] = a[0]; // 被篩選結點的最終位置
}void adjustup(int* a, int k) // k為堆元素個數
{ a[0] = a[k];
int i = k/2;
while(i>0 && a[i]#4、歸併排序
##1、二路歸併排序
STL中常用資料結構
stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...
STL中常用資料結構
stl中常用的資料結構 1 stack queue預設的底層實現為deque結構。2 deque 用map管理多個size大小的連續記憶體塊,方便頭尾插入。3 vector 變長動態陣列,每次增大1.5倍,刪除元素時不釋放空間。4 priority queue底層預設採用vector向量o nlog...
資料結構中常用演算法
排序常用的演算法有 插入演算法 直接插入演算法 折半插入演算法 希爾演算法 選擇演算法 簡單選擇演算法 堆排序演算法 快速演算法 氣泡排序 快速排序演算法 以下程式給出了各種演算法的實現,其介面為void sort int array,int len 每個檔案實現乙個演算法,最後和main.c檔案編...