假设对输入的十个数进行排序
冒泡法:会用两个for循环,外层for循环是控制次数为9次,因为每进行外部的for循环一次就可以把循环的队列中的最大或者最小的那个数放到最后。
选择法:也会用两个for循环,总体思想是进行9次循环,每次循环是按顺序对一个数与剩下的数进行比较找出最大的或者最小的。找出来后更换数组下标就好了。
for(i=0;i<9;i++)
{
k=i;
for( j=i+1;j<10;j++) //j=i+1才能连接下一次的外层for循环
If(a[k]<a[j])
K=j;
If(k!=i)
{
t=a[k]; //此时的a[k]已经为遍历后的最值a[j]
a[k]=a[i];
a[i]=t; //把最值放在数组前面
}
}
插入法:
将序列分为有序序列和无序列,依次从无序序列中取出元素值插入到有序序列的合适位置。初始是有序序列中只有第一个数,其余n-1个数组成无序序列,则n个数需进n-1 次插入。
for(i=1;i<10;i++)
{
t=a[i]; /*将待插入数暂存于变量t中*/
for( j=i-1 ; j>=0 && t>a[j] ; j-- )
a[j+1]=a[j]; /*若未找到插入位置,则当前元素后移一个位置*/
a[j+1]=t; /*找到插入位置,完成插入*/
}