对数组进行排序的两种方法
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;
}
}
}
对重量进行排序后,输出帽子颜色,如有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;
}
}
}
相关文章推荐
- java中对集合或数组进行排序有两种方法:Comparable 与 Comparator
- 6.用插入排序对任意一组随机数据进行随机数组进行排序(用循环和递归两种方法)
- 排序字符串数组函数(两种方法)
- java排序的两种方法(数组排序)冒泡法和冒泡改进法
- js sort方法根据数组中对象的某一个属性值进行排序
- Java编程之TreeSet排序两种解决方法(1)元素自身具备比较功能,元素需要实现Comparable接口覆盖compare(2)创建根据自定义Person类的name进行排序的Comparator
- 不排序,两种方法找到无序数组的最大K个数
- 比较两种数组随机排序方法的效率 JavaScript版
- 数组与集合的应用之数组排序与查询(使用Sort方法对数组进行排序)
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- 不排序,两种方法找到无序数组的最大K个数
- js sort方法根据数组中对象的某一个属性值进行排序
- C语言程序中对多维数组中以某一维数据进行排序的一种方法
- 【Java】编写一个方法,对字符串数组进行排序,将所有变位词排在相邻的位置
- php根据某字段对多维数组进行排序的方法
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- 使用sort方法对数组进行排序
- JavaScript 使用 sort() 方法从数值上对数组进行排序
- PHP实现对多维数组按照某个键值排序的两种解决方法
- JAVA中对一维数组排序的方法(在快速排序上进行的优化)