稳定的排序算法
void swap(int &a , int &b)
{
int t = b;
b = a;
a = t;
}
冒泡排序
void bubbleSort(int *data , int size)
{
for(int i=0;i<size-1;i++)
for(int j=0;j<size-i-1;j++)
if(data[j]<data[j+1])
swap(data[j] , data[j+1]);
}
直接插入排序(straight insertion sort)
将一个记录插入到已排好序的有序表中,即先将序列中第一个记录看成是一个有序的子序列,然后从第2个记录起逐个进行插入,直至整个序列变成按关键字有序排列为止。
void insertSort(int *data , int size = SIZE)
{
int outpost = 0;//哨站
for(int i=1;i<size;i++)
{
if(data[i]<data[i-1])
{
outpost = data[i];
data[i] = data[i-1];
int j = i-1;
while(data[j]>outpost)
{
data[j+1] = data[j];
j--;//这里会多执行一次
}
data[j+1] = outpost;
}
}
}
1011

被折叠的 条评论
为什么被折叠?



