插入排序 java

插入排序的算法描述:
一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:   
⒈ 从第一个元素开始,该元素可以认为已经被排序   
⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描   
⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置   
⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置   
⒌ 将新元素插入到下一位置中   
⒍ 重复步骤2

import java.util.Scanner;
public class insertSort {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int n;
		int k=0;
		System.out.print("请输入排序的数字个数:");
		Scanner in = new Scanner(System.in);
		n = in.nextInt();
		int sort[] = new int[n];
		System.out.print("请输入" + n + "个整数:");
		for(int i = 0;i < n;i++)
			sort[i] = in.nextInt();
		for(int i = 1;i < n;i++)
		{
			int j;
			int flag = 0;
			k = sort[i];
			for(j = i-1;j >=0;j--)
			{
				if(k < sort[j])
					sort[j+1] = sort[j];
				else
					break;
			}
			sort[j+1] = k;
			System.out.println(i + "趟排序的结果为:");
			for(int m = 0;m < n;m++)
				System.out.print(sort[m] + "  ");
			System.out.println();
			for(int m = 0;m < n-1;m++)
				if(sort[m] < sort[m+1])
					flag = flag + 1;
			if(flag == n-1)
				break;
		}
		System.out.println("插入排序的结果为:");
		for(int m = 0;m < n;m++)
			System.out.print(sort[m] + "  ");
	}

}

你可能感兴趣的:(java,算法,插入排序)