插入排序
插入排序:
初始化类代码:
/** *插入排序算法,在一个数组中使得其按照大小顺序排序输出 *@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); } }
这些只是记录个人的学习的路程。