博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
InsertionSort 直接插入排序(java)
阅读量:7186 次
发布时间:2019-06-29

本文共 847 字,大约阅读时间需要 2 分钟。

排序思想:

相当于一堆数字,一开始先取出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+" ");
  }
 }
}

 

转载于:https://www.cnblogs.com/yzdtofly/p/7241421.html

你可能感兴趣的文章
设计模式(一)单例模式
查看>>
auto,register,static实例
查看>>
log4net 开启内部调试
查看>>
Shell脚本开发过程中遇到的问题处理
查看>>
30421发展
查看>>
一些关于Gulp和NodeJS Stream的理解
查看>>
配置java环境
查看>>
我在csdn有一个新家啦
查看>>
LINQ to SQL语句之Union All/Union/Intersect和Top/Bottom和Paging和SqlMethods
查看>>
【Python学习笔记】-冒泡排序、插入排序、二分法查找
查看>>
linux进程管理之进程创建(三)
查看>>
DS第五章学习小结
查看>>
IT的开始之路——微信小程序(3)
查看>>
Binary Postorder Traversal
查看>>
Backpack III 完全背包
查看>>
Android快捷键
查看>>
对象进阶
查看>>
闹心的CSDN
查看>>
java基础---面向对象
查看>>
51nod - 1022【四边形不等式优化DP】
查看>>