| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 478 人关注过本帖
标题:麻烦讲解一下这个算法
只看楼主 加入收藏
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
结帖率:87.5%
收藏
 问题点数:0 回复次数:4 
麻烦讲解一下这个算法
麻烦讲解一下这个算法
怪怪啊
void Sort(double * s, int n) // 选择排序
{
double temp;
int pos;
for (int i = 0;i < n - 1;++i)
{
  temp = s[i];
  pos = i;
  for (int j = i + 1;j < n;j++)
  {
  if (s[j] < temp)
  {
    temp = s[j];
    pos = j;
  }
  }
  s[pos] = s[i];
  s[i] = temp;
}
}核心是什么 希望高手指点我是大菜鸟 还望不吝赐教啊
搜索更多相关主题的帖子: double 
2009-12-25 23:14
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
收藏
得分:0 
void Sort(double * s, int n) /*这里* s应该是调用主函数中的数组元素的首元素地址,n是函数元素个数。主函数都没有写出来,下面我只能根据意思帮你解释了,*/
{
double temp;
int pos;
for (int i = 0;i < n - 1;++i)   /*这个FOR循环是外循环,首先令定义整形变量i并且赋初值0,*/

{
  temp = s[i];     /*首先把s[i]的值赋给temp,*/
  pos = i;         /*i的值赋值给POS*/
  for (int j = i + 1;j < n;j++)  /*这个FOR循环是内循环,就是每次I改变一次这里都要进行n-i+1次循环,*/

  {
  if (s[j] < temp)  /*比较s[j]与temp的大小,如果s[j]小于temp就执行下面temp = s[j];   pos = j;这两个语句*/
  {
    temp = s[j];  
    pos = j;
  }
  }
  s[pos] = s[i];
  s[i] = temp;   /*假设有比s[i]还要小的数就于他交换,即实现将小的数放到前面,如果没有比它小的数的话,那么这里就是它自己和自己交换*/
}
}
LZ去把FOR循环好好的再看下吧。这种题目很简单。
收到的鲜花
  • jbddd2009-12-26 14:22 送鲜花  1朵   附言:呵呵 谢谢你
2009-12-25 23:58
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:0 
假设有n个数
第1个数跟第2——n个数比较然后取出最小数跟第1个数交换
第2个数跟第3——n个数比较然后取出最小数跟第2个数交换
第3个数跟第4——n个数比较然后取出最小数跟第3个数交换
 .
 .
 .
第n-1个数跟第n个数比较然后取出最小数跟第n-1个数交换

收到的鲜花
  • jbddd2009-12-26 14:22 送鲜花  2朵   附言:谢谢你 恍然大悟了

qq7434391
2009-12-26 00:34
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
以下是引用liangwenbc在2009-12-26 00:34:52的发言:

假设有n个数
第1个数跟第2——n个数比较然后取出最小数跟第1个数交换
第2个数跟第3——n个数比较然后取出最小数跟第2个数交换
第3个数跟第4——n个数比较然后取出最小数跟第3个数交换
 .
 .
 .
第n-1个数跟第n个数比 ...
理解了 。。。宏观的表达就是说一直到最后的算法算完以后 所有的队列全按从小到大的顺序排了
2009-12-26 14:07
jbddd
Rank: 2
等 级:论坛游民
帖 子:45
专家分:24
注 册:2009-7-26
收藏
得分:0 
以下是引用李若斌在2009-12-25 23:58:51的发言:

void Sort(double * s, int n) /*这里* s应该是调用主函数中的数组元素的首元素地址,n是函数元素个数。主函数都没有写出来,下面我只能根据意思帮你解释了,*/
{
double temp;
int pos;
for (int i = 0;i < n - 1;++i ...
我比较的菜 还请多多的指教,个代码的意思还是比较懂 但是结合起来看算法要表达什么就不知道有点脑袋晕 呵呵呵 我会努力的 谢谢指教了
2009-12-26 14:08
快速回复:麻烦讲解一下这个算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012112 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved