您的位置:首页 > 其它

对数组进行排序的两种方法

2014-03-02 15:59 204 查看
描述:
对重量进行排序后,输出帽子颜色,如有5只小白鼠,重量分别为15, 30, 5, 9 30, 帽子颜色依次为CL_RED, CL_BLUE, CL_BLUE, CL_YELLOW, CL_GRAY,
则排序后的输出的帽子颜色序列应该为CL_BLUE, CL_YELLOW, CL_RED, CL_BLUE, CL_GAR. 如果没有小白鼠,则输出null

分析:
对数组进行排序,常规的排序时用两个for循环,只是这样比较的次数固定,会比较多;另外一种优化的方法是加一个标志位看是否进行了位置改变,如果进行了改变,则在该次比较完成之后,还需要从头再次比较。这样的好处是如果本来就是排好序的,则直接一遍比完就结束了。

代码如下:
双重for循环进行排序:
Mouse temp = new Mouse();
for (int i=0;i<mouse.length;i++)
{
for (int j=i+1;j<mouse.length;j++)
{
if (mouse[i].weight > mouse[j].weight)
{
temp = mouse[i];
mouse[i] = mouse[j];
mouse[j] = temp;
}
}
}

加标志位用while和for双重循环进行排序:
boolean flag=true;
while(flag)
{
flag=false;
for(j=0;j+1<mouse.length;j++)
{
if(mouse[j].weight>mouse[j+1].weight)
{
flag=true;
temp=mouse[j+1];
mouse[j+1]=mouse[j];
mouse[j]=temp;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法
相关文章推荐