| 
                     | 
                    
                        主题:  判断重复数
                     | 
                
            
                        
                
                    
                          蓝鲸 
                        职务:版主 
                        等级:5 
                        金币:42.1 
                        发贴:2614 
                     | 
                    
                        
                            
                            #12004/11/25 1:16:44 
                            
                                比如有一个数组1——100,数组里的数必须是1--100的数字,并且不能有重复,怎样判断算法好一些。
                             
                            
                            非常大鱼 
                         
                     | 
                
                        
                
                    
                          不是高手 
                        职务:普通成员 
                        等级:3 
                        金币:5.0 
                        发贴:1352 
                     | 
                    
                        
                            
                            #22004/11/25 8:27:36 
                            
                                对,我也碰到过类似问题,产生一堆在一定范围内的随机数,不能重复,不知道哪种算法好点。
                             
                            
                            
                         
                     | 
                
                        
                
                    
                          蓝鲸 
                        职务:版主 
                        等级:5 
                        金币:42.1 
                        发贴:2614 
                     | 
                    
                        
                            
                            #32004/11/25 14:49:11 
                            
                                最笨的办法是二个循环 for (int i = 0; i < array.Length; i++) {     found = false     for (int j = 0; j < array.Length; j++)     {         if (array[j] == i + 1)         {             found = true;             break;         }     }          if (!found)     {         return false;     } }
  其次,用一个临时数组,把找到的一个加入到临时数组中,并把数组的该数字去掉,可以少些循环。问题是数组去掉一个数字也并不容易,需要把后面的数字往前移动1。是否不用数组而用链表。c#中的ArrayList不知怎样。
  另外,是否把它看成一个排序的问题,排序完成后,只要后面的数字比前面大1就可以了。
                             
                            
                            非常大鱼 
                         
                     | 
                
                        
                
                    
                          panliu888 
                        职务:普通成员 
                        等级:1 
                        金币:0.0 
                        发贴:26 
                     | 
                    
                        
                     | 
                
                        
                
                    
                          蓝鲸 
                        职务:版主 
                        等级:5 
                        金币:42.1 
                        发贴:2614 
                     | 
                    
                        
                            
                            #52004/11/26 0:49:46 
                            
                                你是先把数字填入数组,再打乱,也是种方法。   
                             
                            
                            非常大鱼 
                         
                     |