排序之插入排序

原理:

N: the number of elements
void inser_sort(Type A[], int N)
{
    for(P=1;P<N;P++){
       Tmp = A[P];
       for(j = P; j>0&&A[j-1]>Tmp;j--)
       {
           A[j] = A[j-1];
       } 
      A[j] = Tmp;
   }
}




java示例:

package sort;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

public class InsertionSort {
	/**
	 * insertion sort
	 * @param A
	 */
	public static void insert_sort(int[] A) {
		int length = A.length;
		for (int p = 1; p < length; p++) {
			int tmp = A[p];
			int j;
			for (j = p; j > 0 && A[j - 1] > tmp; j--) {
				A[j] = A[j - 1];
			}
			A[j] = tmp;
		}
	}

	public static void main(String args[]) {
		int N;
		Scanner scanner = new Scanner(new BufferedReader(new InputStreamReader(
				System.in)));
		N = scanner.nextInt();
		int[] arr = new int[N];
		for (int i = 0; i < N; i++) {
			arr[i] = scanner.nextInt();
		}
		insert_sort(arr);
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]);
		}
	}
}


posted @ 2014-03-04 10:26  bingtel  阅读(133)  评论(0编辑  收藏  举报