java– 将元素插入到排序列表中

java– 将元素插入到排序列表中,第1张

概述好吧我正在使用getSharedPreferences来存储我的高分,但是在我填写之前我想通过和数组将分数按升序排序,但是如果它在第一个pos中找到的分数小于它,那么它不会检查其余的最小的?//functiontoaddscoretoarrayandsortitpublicvoidaddscoretoarray(intmScore){

好吧我正在使用getSharedPreferences来存储我的高分,但是在我填写之前我想通过和数组将分数按升序排序,但是如果它在第一个pos中找到的分数小于它,那么它不会检查其余的最小的?

    //function to add score to array and sort it    public voID addscoretoarray(int mscore){    for(int pos = 0; pos< score.length; pos++){        if(score[pos]  > mscore){            //do nothing        }else {                //Add the score into that  position                score[pos] = mscore;                break;            }    }    sortArray(score);}

我应该在循环之前和之后调用sortArray()来解决这个问题,还是有更好的方法来实现相同的结果?

我还要提一下,sortArray(score)函数只是调用Arrays.sort(得分)
得分是mscore的数组

编辑:
根据@vincent RamdhanIE发布的内容,我修改了帖子:

    public voID addscoretoarray(int mscore){    int pos = score.length;     //sort the array (in ascending order)    sortArray(score);    //go though the array( in descending order) and check for a place that suits the conditions    while(pos>=0 && score[pos] > mscore){          pos--; //do nothing as score[pos] is larger than mscore    }     //so once a pos is found (e.g. broke out of the while loop)     //check that it is still in the List    if(pos >= 0){        //if it is then move everything down 1 position        for(int i = 0; i < pos; i++){            score[i] = score[i+1];        }        //replace the initial pos with the new score        score[pos] = mscore;    }}

我仍然相信它会在for(int i = 0; i< pos; i){loop}时从列表中删除.

解决方法:

为什么不保持分数数组排序.因此,您对数组的添加分数将假定数组始终按降序排序.要插入的新分数将简单地在插入时从阵列中取出最低分.然后,您可以使用这样的插入算法:

   insertscore(int[] scores, int mscore){        //find insert point        int i = 0;        while(i < scores.length && scores[i] > mscore){            i++;        }        if(i < scores.length){            //you found a place to insert the score            for(int j = scores.length-1; j > i; j--){                scores[j] = scores[j - 1];            }            scores[i] = mscore;        }   }

在这种情况下,不需要求助于阵列.

总结

以上是内存溢出为你收集整理的java – 将元素插入到排序列表中全部内容,希望文章能够帮你解决java – 将元素插入到排序列表中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存