称重小白鼠
称重小白鼠
题目标题:
- 
N只小白鼠,每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色由枚举值MOUSE_COLOR定义。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示 
- 
请按照小白鼠的重量从小到大的顺序输出他们帽子的颜色,重量相同的小白鼠,排序后位置不变 
详细描述:
- 
接口说明 
/*根据重量排序后,输出帽子颜色 * 举例: 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_GRAY。 如果没有小白鼠,输出null。 输入参数:小白鼠数组 */ public static MOUSE_COLOR[] sortMouse(Mouse[] mouse ) { return null; }
举例:
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_GRAY。
 1 package huawei;
 2 
 3 public final class Demo {
 4 
 5     /*根据重量排序后,输出帽子颜色
 6      * 举例:    5只小白鼠,重量分别为15 30 5 9 30,帽子颜色依次为CL_RED, CL_BLUE, CL_BLUE, CL_YELLOW, CL_GRAY,
 7      * 则排序后的输出的帽子颜色序列应该为CL_BLUE, CL_YELLOW, CL_RED, CL_BLUE, CL_GRAY。
 8         如果没有小白鼠,输出null。
 9     输入参数:小白鼠数组    
10         
11     */
12     public static MOUSE_COLOR[] sortMouse(Mouse[] mouse )
13     {
14         Mouse[] mouse1 = mouse;
15     
16         if(mouse==null||mouse.length==0)return null; //这个地方必须判断,而且要先判断是否为null,在判断是否为0,否则会有异常
17         
18         //直接插入算法
19         for(int i=1;i<mouse1.length;i++) //从第2个元素开始遍历,遍历n-1遍
20         {
21             
22             int j=i;
23             
24             Mouse temp = mouse1[i];
25             
26             while((j>0)&&(temp.weight<mouse1[j-1].weight)) {
27                 
28                 mouse1[j] = mouse1[j-1];
29                 j--;            
30             }        
31             mouse1[j] = temp;
32         }    
33         MOUSE_COLOR [] colors = new MOUSE_COLOR[mouse1.length];
34         
35         for(int i=0;i<colors.length;i++) {
36             
37             colors[i] = mouse1[i].color;        
38         }    
39         return colors;        
40     }    
41 }
 1 package huawei;
 2 
 3 public class Mouse {
 4     public int weight;
 5     public MOUSE_COLOR color;    
 6     public Mouse()
 7     {
 8         
 9     }
10     public Mouse(int weight,MOUSE_COLOR color)
11     {
12         this.weight =weight;
13         this.color = color;
14     }
15 }
 1 package huawei;
 2 
 3 public enum MOUSE_COLOR {
 4     CL_RED,
 5     CL_BLUE,
 6     CL_BLACK,
 7     CL_WHITE,
 8     CL_YELLOW,
 9     CL_PINK,
10     CL_GRAY
11 }
 
                    
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号