码迷,mamicode.com
首页 > 编程语言 > 详细

交换排序问题

时间:2017-06-25 23:55:57      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:最大的   i+1   范围   最小数   它的   重复   动作   个数   nbsp   

如果有个数组strs,我们怎样实现将它的数据从小到大排序.

1、以前我们解决过这种问题:找到数组的最小数据

//首先假设数组的第一项就是最小的,int min=strs[0];

for(int i=0; i<strs.Length; i++)

{

  if(strs[i]>min)

  {

    //说明strs[i]是最小的项

    Console.Write("strs[i]");

  }

}

2、理解了上面这个问题,那么这道题的问题就好解决了。

重复动作:如果索引为0位置的数字比索引为j位置的数字大,就交换

#1、j的范围(1--strs.Length-1)因为我们将第一项看做是最小的,那么我们就将后面的项与第一项比较并交换。

if(strs[0]>strs[j])

{

//交换位置

  int temp =strs[0];

  strs[0] =strs[j];

  strs[j] =temp ;

}

//上面是完成了第一项的交换,其他项的交换,我们将strs[0] 看做strs[i](i的取值范围:0---strs.Length-2),为什么是倒数第二项呢,因为,我们交换到倒数第二项了,最后一项肯定是最大的数字了,所以就不需要交换了.

for(int i=0 ; i<=strs.Length-2 ;i++)     //将比较排序问题

{

//这部分最要讲交换的问题

  for(int j=i+1 ; j <=strs.Length-1 ; j++)

  {

    if(strs[i]>strs[j])

    {

      int temp =strs[i];

      strsi] =strs[j];

      strs[j] =temp ;

     }

  }

}

 

交换排序问题

标签:最大的   i+1   范围   最小数   它的   重复   动作   个数   nbsp   

原文地址:http://www.cnblogs.com/lp-000/p/7078402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!