一、排序算法介绍
插入排序、冒泡排序、选择排序、快速排序、希尔排序、堆排序、归并排序、计数排序、桶排序、基数排序
二、插入排序
原理:新建一个数组或者链表,将要排序的数据逐个比对,插入新的数组或者链表里面
void sort(int *data, int len)
{
int *tmp;
int i,j;
tmp = (int *)malloc(len*4);
memset(tmp, 0, len*4);//清零
for(j = 0; j < len; j++)
for(i = 0; i < len; i++)
{
if(data[j] >= tmp[i])
{
//向后移动一个元素
memcpy(&tmp[i+1], &tmp[i], (len-i)*4);
tmp[i] = data[j]; //插入新的数据
break;
}
}
printf("排序后数据:");
for(i = 0; i < len; i++)
printf("%d ", tmp[i]);
}
void sort_test()
{
const int data[8] = {8,23,43,5,2,23,12,35};
sort((int *)data, 8);
}