码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构复习之--“插入排序”-JAVA实现

时间:2017-09-02 00:19:22      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:java   数据结构   插入排序   

菜鸟中的菜鸟一枚,面临找工作,复习下数据结构,写的插入排序算法记录一下,每天写一点,不断积累吧!技术分享



import java.util.Scanner;

/**

 * 

 * @author DL

 * 数据结构复习之插入排序练习程序

 *

 */

public class SortTest {

   public static void main(String [] args){

       Scanner sc = new Scanner(System.in);

       int totalNums = sc.nextInt();//读入待排序的数据个数

       //为读入的数据分配空间,多分配一个,其中第一个位置inputData[0]作为哨兵

       int [] inputData = new int[totalNums+1];

       for(int i=1;i<=totalNums;i++){

         inputData[i]=sc.nextInt();

       }

       show(inputData);

       insertSort(inputData);

       show(inputData);

   }


/**

* 插入排序程序

* @param array 待排序数组

*/

static void insertSort(int [] array){

  for (int i = 2; i < array.length; i++) {

     array[0]=array[i];//将待比较的元素拷贝到array[0]位置,作为哨兵

            int j;

           //从选中元素开始左边第一个进行比较,直到找到一个比它大的元素,跳出循环

        for(j=i-1;j>0;j--){

        if(array[0]<array[j]){

        array[j+1]=array[j];//比哨兵小的元素位置向后移动

        }else{

            break;

            }

      }


      //代码精简版

       /*for(j=i-1;array[0]<array[j];j--){

            array[j+1]=array[j];

       }*/

       array[j+1]=array[0];//将当前待比较元素插入到找到的位置

       }

     }


/**

* 输出数组元素

* @param array 待显示数组

*/

static void show(int [] array){

  for (int i = 1; i <array.length; i++) {

           System.out.print(array[i]+" ");

     }

           System.out.println("\n");

   }

}


本文出自 “执持” 博客,请务必保留此出处http://dengliu.blog.51cto.com/13212652/1962041

数据结构复习之--“插入排序”-JAVA实现

标签:java   数据结构   插入排序   

原文地址:http://dengliu.blog.51cto.com/13212652/1962041

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!