本篇搜集常用排序算法,自己测试实现后放在这里,以备后续查阅,也请各位朋友指正
目前包含的排序算法:
冒泡排序
插入排序
选择排序
快速排序
希尔排序(冒泡排序的加强版,这里用N/2测试)
【长期更新】后续会补上其余的排序,比如堆排序等,也可能会对之前的代码做调整
在main函数中,可通过注释掉其他函数,调用需要测试的函数
#include <stdio.h>
#define MAXN 9
void swap(int *a, int *b); //交换两个元素的函数
void print(int a[], int n); //打印数组全部元素
void bubble_sort(int a[], int n); //冒泡排序
void insertion_sort(int a[], int n); //插入排序
void selection_sort(int a[], int n); //选择排序
void quick_sort(int a[], int left, int right); //快速排序(本部分代码参考百度百科,鸣谢)
void shell_sort(int a[], int n); //希尔排序
int main()
{
int i, n;
int a[MAXN] = {9,4,5,7,0,2,6,3,1};
printf("Before sorted the array is:");
print(a, MAXN);
printf("\n");
//bubble_sort(a, MAXN);
//insertion_sort(a, MAXN);
//selection_sort(a, MAXN);
//quick_sort(a, 0, MAXN-1);
shell_sort(a,