Java实现插入排序

插入排序(Insertion Sort),是一种简单直观并且稳定的排序算法。

从前到后取每个元素和之后的元素进行比较,将较小的元素前移,周而复始一直到最后一个元素,这样就将一组数从小到大进行排序。
另外也保证了两个相邻且相等的数顺序不会发生改变,保证了算法的稳定性

java实现:

import java.util.Scanner;
import java.util.ArrayList;
public class CRsort {   
    public static void main(String args[]) {
    Scanner input = new Scanner(System.in); 
    System.out.println("请输入10个数字:");    
    ArrayList<Integer> arr = new ArrayList<Integer>();  
    while (input.hasNext()) { 
        arr.add(input.nextInt()); 
        if (arr.size() == 10)   //控制输入数为10个
        break;   
    }      
    Object[] arrays = arr.toArray();  //将ArrayList转换为数组类型
    for (int i = 0; i < arrays.length; i++) {   
        for (int j = i + 1; j < arrays.length; j++) {  
            Integer num1 = (Integer) arrays[i];  //取其中一个元素和之后的元素进行比较
            Integer num2 = (Integer) arrays[j];   
            if (num1 > num2) {   //num1>num2,将两者进行交换
                arrays[i] = num2;     
                arrays[j] = num1;     
            }
        }
    }      
  System.out.print("插入排序是:");      
  for (int i = 0; i < arrays.length; i++) {  
          System.out.print(arrays[i] + " ");
  } 
 }
}

运行结果:
请输入10个数字:
8 6 4 1 3 4 2 5 7 9 0
插入排序是:1 2 3 4 4 5 6 7 8 9

推荐阅读更多精彩内容

  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,419评论 0 16
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 4,779评论 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 807评论 0 2
  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 1,952评论 0 35
  • 神话的再塑造,让我想到了鲁迅的《故事新编》; 苏童写这篇小说的初衷是由于英国坎农格特出版社发起“重述神话”项目的邀...
    野狐禅师的孤读空间阅读 113评论 0 0
  • 转载请注明出处 1.1掩膜版的种类 QR码的掩膜版一共8种。他是在数据字和纠错字都在矩阵中填充完后,选择掩膜版类型...
    只看你一眼阅读 2,310评论 0 1
  • 前几天做以docker方式来运行runner,现在想好像有点出入。真正应该是通过打包一个docker镜像,在镜像里...
    潘祖龙阅读 848评论 0 1