当前位置: 代码迷 >> C语言 >> 选择法对数进行排序的原理?
  详细解决方案

选择法对数进行排序的原理?

热度:214   发布时间:2006-03-17 16:57:00.0
选择法对数进行排序的原理?

这是用选择法对数进行排序,是一种常用的方法,可我不懂原理,请谁帮我仔细的解释这段程序?
sort(int x[ ],int n)
{
int i, j, k, t;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j=n;j++)
if(x[j]>x[k]) k=j;     //从这我就看不懂了???
if(k! =i)
{t=x[i];x[i]=x[k];x[k]=t;}
}
}
    我猜大概意思是:按顺序对两个数,两两比较,然后....我就看不懂了??
    请哪位仔细说说??谢谢!

搜索更多相关的解决方案: 对数  原理  选择  

----------------解决方案--------------------------------------------------------

就是每一次将最小者左移,你那5个试试,第1次将最小者移动到第0元素上,其他类似


----------------解决方案--------------------------------------------------------
以下是引用梦想中国在2006-3-17 17:06:00的发言:

就是每一次将最小者左移,你那5个试试,第1次将最小者移动到第0元素上,其他类似

谢谢!我再说一下,你看看对不:把两个数相比较,如果后一个数比前一个数大,则k=j:使的k肯定不等于i,然后就交换这两数?


----------------解决方案--------------------------------------------------------
选择法的原理是先将第一个数与后面的每一个数依次比较,不断将将小的赋给第一个数,从而找出最小的,然后第二个数与后面的每一个数依次比较,从而找出第二小的,然后第三个数与后面的每一个数依次比较,从而找出第三小的.....直到找到最后一个数
----------------解决方案--------------------------------------------------------
我知道这句"if(k!=i)..."你不明白``这句是说:如果k不等于i,也就是当x[i]不是最小而是x[k]最小,就交换这两个值.
----------------解决方案--------------------------------------------------------
  相关解决方案