排序常用的演算法有:插入演算法(直接插入演算法、折半插入演算法、希爾演算法)、選擇演算法(簡單選擇演算法、堆排序演算法)、快速演算法(氣泡排序、快速排序演算法)
以下程式給出了各種演算法的實現,其介面為void sort(int *array,int len),每個檔案實現乙個演算法, 最後和main.c檔案編譯實現。
1、直接插入演算法:
//direct_insert_sort.c
void sort(int *array,int len)
array[j+1]=tmp;
} }
}
2、折半插入排序
//binary_insert_sort.c
void sort(int *array,int len)
for(j=i-1;j>=low;j--)
array[low]=tmp;
} }
}
3、希爾排序
//shell_sort.c
void sort(int *array,int len)
} }while(gap > 1);
}
4、簡單選擇排序
//******_select_sort
void sort(int *array,int len)
} static void heapadjust(int * array,int start,int end)
array[start]=tmp;
}
6、氣泡排序
//bubble_sort.c
void sort(int * array,int len)
}
}
7、快速排序
//quick_sort.c
static int partition(int *array,int low,int high);
static void quicksort(int *array,int start,int end);
void sort(int *array,int len)
static void quicksort(int *array,int start,int end)
} static int partition(int *array,int low,int high)
int main()
資料結構 資料結構中常用的排序演算法
排序是資料結構中重要的內容,也是面試過程中經常涉及的部分。在這裡,我給出幾個基本的排序演算法的c c 對於具體的排序的原理,不做太多的介紹,隨便找一本資料結構教材都能弄清楚。宣告 1 以下給出的 並沒有判斷邊界條件,只是給出了演算法的核心 如果遇到具體的問題,應該加以判斷。2 演算法實現的是公升序排...
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...