1.插入排序:
原理援引百度百科:百度百科_插入排序
算法代码:
void insert_sort(int *data,int length)
{
coutdata(data,length);
int sort_index=1;
int temp;
for(;sort_index<length;sort_index++)
{
if(data[sort_index]<data[sort_index-1])
{
temp=data[sort_index];
int k=sort_index-1;
for(k=sort_index-1;data[k]>temp&&k>=0;k--)
data[k+1]=data[k];
data[k+1]=temp;
}
}
}
2.选择排序
原理参考百度百科:选择排序_百度百科
算法代码:
void selectsort(int num)
{
int index=0;
int min,min_index;
for(;index<num;index++)
{
min=data[index];
min_index=index;
for(int i=index+1;i<num;i++)
{
if(data[i]<min)
{
min=data[i];
min_index=i;
}
}
if(min_index!=index)
swap(min_index,index);
}
}
3.希尔算法
void shellsort(int num)
{
int increment=num/2;
int temp,j;
while(increment>=1)
{
for(int i=increment;i<num;i++)
{
if(data[i]<data[i-increment])
{
temp=data[i];
for(j=i-increment;j>=0&&temp<data[j];j-=increment)
data[j+increment]=data[j];
data[j+increment]=temp;
}
}
increment=increment/2;
}
}
再写个快排就结束这一篇!
(待续)