首页 > 编程语言 > 详细

InsertionSort 直接插入排序(java)

时间:2017-07-26 20:06:39      阅读:258      评论:0      收藏:0      [点我收藏+]

排序思想:
相当于一堆数字,一开始先取出2个数排序,2个数排好序之后,再从一堆数字里面取一个数排序,直到结束
伪代码:
INSERTION_SORT(A)
for j = 2 to A.length
  key = A[j]
  //Insert A[j] into sorted sequence A[1...j-1].
  i = j - 1
  while i>0 and A[i]>key
    A[i+1] = A[j]
    i = i - 1

  A[i + 1] = key

代码:

import java.io.*;
public class InsertionSort{
public static void InsertionSort(int[] A){
  //从第二个元素开始循环
  for(int i=1;i<A.length;i++){
    //得到需要排序的数
    int key = A[i];
    //跟之前排好序的最大的元素开始比较,此时j为之前排好序的最大的元素的下标
    int j = i - 1;
    //循环比较,直到这个数>前一个数并且<后一个数
    while(j>=0&&A[j]>key){
    //比这个数大,则之前的数往后移
      A[j+1] = A[j];
      j = j - 1;
    }
    //把这个数放入数组中
    A[j + 1] = key;
  }
}


public static void main(String[] args) {
  int[] A = { 4, 6, 9, 10, 5, 3};
  InsertionSort(A);
  for(int a: A){
    System.out.print(a+" ");
  }
 }
}

 

InsertionSort 直接插入排序(java)

原文:http://www.cnblogs.com/yzdtofly/p/7241421.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!