插入排序

插入排序:

初始化类代码:

               /**
                *插入排序算法,在一个数组中使得其按照大小顺序排序输出
                *@author LZ
                *@vesion 2014.6.7
                */
      
               class InitiateSort
               {

                   
                         //此类是一个充血模型
                          
                         /**
                         *无参的构造方法
                         *@param 无
                         *@return*/

                         public InitiateSort(){}
                       
                        /**
                         *写一个实现的代码
                         *@param int[] sort
                         *@return*/
                              public void InitiateSort_action(int[] sort){
                                //调用OutPut(),输出未经排序的元素
                                  System.out.println("未经插入排序的结果:");
                                  
                                  
                                  //判断传入的参数是否合法
                                  if(sort == null ||sort.length <= 0){
                                        System.out.println("参数sort或数组中无元素!");
                                  }
                                   
                                  
                                /**
                                  *算法:选择排序算法
                                  *int o_num 表示外层比较所处的次数
                                  *int i_num 表示内层仍需比较所处的次数
                                  */

                                  int o_num =0;
                                  int i_num =0;
                                  //定义一个整型的变量来短暂的存储交换时候的值
                                  int temp = 0;
                                  
    
                              outer:
                                  for(o_num = 0;o_num < sort.length-2 ;o_num++){

                                     inner:
                                        for(i_num = o_num;i_num < sort.length -2;i_num++){
                                           //让最小的总是处在最前面
                                            //选择排序的核心代码

                                              if(sort[o_num] > sort[i_num+1]){
                                                    temp = sort[o_num];
                                                  sort[o_num] = sort[i_num+1];
                                                  sort[i_num+1] = temp;

                                              }
                                        }
                                        

                                  }
                                 
                                  if(o_num == sort.length-2){System.out.println("排序成功!");}
                                  //调用输出方法将排序成功的数组输出便于观察

                                  
                         }

                        
               }

//插入代码:

                   /**
                   *插入排序算法,在一个数组中使得其按照大小顺序排序输出
                   *@author LZ
                   *@vesion 2014.6.7
                   */

                   //创建选择排序算法的类
                   class InsertSort
                   {
                         //此类是一个充血模型
                          
                         /**
                         *无参的构造方法
                         *@param 无
                         *@return*/

                         public InsertSort(){}

                         /**
                         *写一个方法InsertSort_action()来操作排序算法
                         *@param  int[] sort,int input 表示要插入的元素
                         *@return  int[]
                         */

                         public void InsertSort_action(int[] sort,int input){

                                 

                                  //内部调用Insert_action()方法实现插入操作
                                  Insert_action(sort,input);

                                
                                  //调用OutPut(),输出排序后的元素
                                  System.out.println("插入排序后的结果:");
                                  
                         }

                        

                        

                         /**
                         *写一个插入的算法,在方法Insert_action()中将要插入的元素
                         *按照其大小插入合适的位置
                         *使其按照从小到大的顺序输出
                         *@param int[] sort ,int input
                         *@return*/

                         public void Insert_action(int[] sort,int input){
                    
                                 
                                /**
                                  *算法:插入排序算法
                                  *int o_num 表示外层比较所处的次数
                                  *int i_num 表示内层仍需比较所处的次数
                                  */

                                  int o_num =0;
                                  int i_num =0;
                                  //定义一个整型的变量来短暂的存储交换时候的值
                                  int temp = 0;
    
                              outer:
                                  for(o_num = 0;o_num < sort.length-2 ;o_num++){
                                           //此处是用来找到元素要插入的位置的

                                              if(input > sort[o_num]&&input <sort[o_num+1]){
                                                  System.out.println("找到了要插入的位置!"+sort[o_num]);
                                                   //内层循环,找到了要插入的位置,那么就要进行插入操作了
                                                   //于是,就要操作数组,数组后移给出空间
                                                  inner:
                                                    for(i_num = sort.length -2;i_num > 3;i_num--){   
                                                           sort[i_num+1] = sort[i_num];
                                                          
                                                    }
                                                    
                                                    //System.out.println("i_num ="+i_num+"o_num="+o_num);
                                                    sort[i_num+1] = input;
                                               }
                                        

                                  }
                         
                         }
                         

                        
                   }

//输出代码:

                   /**
                   *输出类,输出插入排序
                   *@author LZ
                   *@version 2014.6.7
                   */

                   public class InsertOutPut
                   {
                          /**
                         *写一个方法OutPut()输出排序前后的元素
                         *@param int[] sort
                         *@return*/

                         public void OutPut(int[] sort){
                             //定义一个整型变量记录输出位置
                             int i ;
                             //输出数组中保存的元素
                             for(i = 0;i <sort.length ;i++){

                                    System.out.println(sort[i]+" ");
                             
                             }
                             System.out.println("元素个数为:"+sort.length);
                              
                         } 

                   }

这些只是记录个人的学习的路程。

posted @ 2014-06-14 23:06  Rob_Code  阅读(106)  评论(0编辑  收藏  举报