刚才学习了一下插入排序,冒泡排序和希尔排序,个人建议是先学插入排序再学希尔排序
1.冒泡排序:
循环两边,一直交换即可:
int bubbleSort(int arry[], int len)
{
int i = 0; int j = 0;
for(i = 0; i < len; i++)
{
for(j = i + 1; j < len; j++)
{
if(arry[j] > arry[i])
{
int tmp = arry[j];
arry[j] = arry[i];
arry[i] = tmp;
}
}
}
return 1;
}
2.插入排序
int insertSort(int arry[], int len)
{
int i = 0; int j = 0;
for(i = 2; i < len; i++)
{
if(arry[i] < arry[i-1])
{
arry[0] = arry[i];
for(j = i-1; arry[0] < arry[i-1]; i--)
{
//arry[i-1] = arry[i];
arry[i] = arry[i-1];
}
arry[i-1] = arry[0];
}
}
return 1;
}
也是两层循环,但是有一个判断,效率提高
3.希尔排序
int ShellSort(int* arry, int len)
{
int gap = len;
int i = 0; int j = 0;
while(gap > 1)
{
gap = gap/2;
int tmp = arry[0];
for(i = gap; i < len; i++)
{
if( arry[i] < arry[i - gap])
{
tmp = arry[i];
arry[i] = arry[i - gap];
arry[i - gap] = tmp;
}
}
}
return 1;
}



