Java排序算法——插入排序
Posted tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java排序算法——插入排序相关的知识,希望对你有一定的参考价值。
import java.util.Arrays; //================================================= // File Name : Select_Sort //------------------------------------------------------------------------------ // Author : Common //类名:Arrays_Select //属性: //方法: class Arrays_Insert{ private int[] arrays; private int curNum; public Arrays_Insert(int max) { //建立一个max长度的空数组 super(); arrays = new int[max]; curNum = 0; } public void insert(int value){ //往空的数组里面增加元素 arrays[curNum] = value; curNum++; } public void display(){ //显示数组 System.out.println(Arrays.toString(arrays)); } private void swap(int one,int two){ //交换 int temp = arrays[one]; arrays[one] = arrays[two]; arrays[two] = temp; } public void InsertSort(){ int out,in; for(out=1;out<curNum;out++){ //从第2个开始,和第1个比较 int temp = arrays[out]; in = out; //in等于out,比较从in-1开始 while(in>0 && arrays[in-1] >= temp){ //如果大于temp,就往右移动 arrays[in] = arrays[in-1]; 例如:2 3 1 temp=1 -> 2 3 3 temp=1 -> 2 2 3 temp=1 -> 1 2 3 temp=1 --in; } arrays[in] = temp; } } } //主类 //Function : Select_Sort public class Insert_Sort { public static void main(String[] args) { // TODO 自动生成的方法存根 int maxSize = 100; Arrays_Insert arrays_demo = new Arrays_Insert(maxSize); arrays_demo.insert(58); arrays_demo.insert(57); arrays_demo.insert(56); arrays_demo.insert(60); arrays_demo.insert(59); arrays_demo.display(); arrays_demo.InsertSort(); arrays_demo.display(); } }
冒泡 N^2/2比较 N^2/4交换
选择 N^2/2比较 比冒泡少的交换
插入 N^2/4比较 N^2/4复制
复制是交换的3倍
以上是关于Java排序算法——插入排序的主要内容,如果未能解决你的问题,请参考以下文章
基础排序算法,java实现(快速,冒泡,选择,堆排序,插入)
Java数据结构和算法总结-冒泡排序选择排序插入排序算法分析
Java排序算法分析与实现:快排冒泡排序选择排序插入排序归并排序