//插入排序是最简单的排序算法之一,谢尔排序也是基于插入排序演变来的,但是效率要高很多
//插入排序示例:
void
{
}
//谢尔排序使用一个增量序列,使用得当的增量序列将会得到更好的排序效率.
void
{
}
//快速排序(分治策略)
void quickSort(int *a,size_t left,size_t right)
size_t p = (left & right) + ((left ^ right) >> 1 );
int key = a[p];
for(size_t i = left,j = right; i < j;)
{
while(key >= a[i] && p >= i)
i++;
if(i < p)
{
a[p] = a[i];
p = i;
}
while(j >= p && a[j] >= key)
j--;
if(p < j)
{
a[p] = a[j];
p = j;
}
a[p] = key;
if(p - left > 1)
quickSort(a,left,p-1);
if(right - p > 1)
quickSort(a,p + 1, right);
}
//选择排序(找出最小的和排好序的最后一个进行替换)
void selesort(int r[],int n)
{
for (int i=0;i<n-1;i++)
{
int min=i;
for (int j=i+1;j<n;j++)
{
if (r[j]<r[min])
{
min=j;
}
}
intswap(r[i],r[min]);
}
}