首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java排序整型数组

Java排序整型数组
EN

Stack Overflow用户
提问于 2016-11-02 06:20:39
回答 1查看 1K关注 0票数 0

我正在尝试使用此方法对整数数组进行升序排序。但是我的for循环只运行一次。

代码语言:javascript
复制
public void sortArray()
{
   boolean sorted = false;

   while(sorted == false)
   {
       int temp;
       for(int i = 0; i < inArray.length - 1; i++)
       {
          if(inArray[i] > inArray[i + 1])
          {
             temp = inArray[i];
             inArray[i] = inArray[i + 1];
             anArray[i + 1] = temp;
          }
       }
       sorted = true;
   }
}

我知道这与我如何处理boolean标志有关,但我不确定如何修复它。如有任何建议,我们将不胜感激。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-11-02 06:25:46

你当前总是在循环的末尾将你的排序设置为true。当然,只有在实际上没有发生重新洗牌的情况下,它才应该是真的。

确定这一点的一种方法是在while循环开始时将sorted设置为true,并在检测到数组尚未排序并进行元素切换时将其设置为false:

代码语言:javascript
复制
public void sortArray()
{
   boolean sorted = false;

   while(!sorted)
   {
       sorted = true;
       int temp;
       for(int i = 0; i < inArray.length - 1; i++)
       {
          if(inArray[i] > inArray[i + 1])
          {
             sorted = false; // array is not yet sorted
             temp = inArray[i];
             inArray[i] = inArray[i + 1];
             anArray[i + 1] = temp;
          }
       }

   }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40369529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档