importjava.util.Scanner;/** *  *@authorDL *数据结构复习"/>

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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构复习之--“插入排序”-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实现的主要内容,如果未能解决你的问题,请参考以下文章

2023数据结构考研复习-排序

java排序之插入排序(直接插入排序和希尔排序)

算法之插入排序

插入排序[数据结构](复习)

面试之插入排序算法

JavaScript ,Python,Go,java,C#系列算法之插入排序篇