//插入排序
package com.InsertSort;
public class InsertSort {
public static void main(String[] args)
{
int[] array = new int[]{3,69,42,18,1,25};
outPut(array); //输出数组
insertAscending(array); //插入升序排序
insertDscending(array); //插入降序排序
}
/**
* 输出数组
* @param array
*/
public static void outPut(int[] array)
{
for (int i = 0; i < array.length; ++i)
{
System.out.print(array[i] + " ");
}
System.out.println();
}
/**
* 插入升序排序
* @param array
*/
public static void insertAscending(int[] array)
{
for (int i = 1; i < array.length; ++i)
{
int j = i - 1;
int temp = array[i]; //temp用来保存要插入的数
while (j >= 0 && temp < array[j]) //两个条件的顺序不能互换,否则数组越界
{
array[j + 1] = array[j]; //如果要插入的数小于前面的数,前面的数后移
--j;
}
array[j + 1] = temp; //插入数的位置
}
System.out.println("插入升序排序为");
outPut(array);
}
public static void insertDscending(int[] array)
{
for (int i = 1; i < array.length; ++i)
{
int j = i - 1;
int temp = array[i]; //temp用来保存要插入的数
while (j >= 0 && temp > array[j])
{
array[j + 1] = array[j]; //如果要插入的数大于前面的数,前面的数后移
--j;
}
array[j + 1] = temp; //插入数的位置
}
System.out.println("插入降序排序为");
outPut(array);
}
}