插入排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序相关的知识,希望对你有一定的参考价值。
输入:待排序的n个数;
输出:输入序列的一个有序排列(从小到大)
插入排序是一种原地排序算法。假设A[j]是待排元素,每次A[j]之前的子数组A[0..j-1]都是已排好序的。这样A[j]只需从后往前和子数组元素比较把比A[j]大的元素向后移动一位,将A[j]插入到合适位置后。j从0取到A.length()之后,数组A也就成为了一个有序数组。插入排序算法的复杂度为O(n2).
import java.util.*; public class InsertSort { static int [] insertSort(int [] A){ int i=0; for(int j=1;j<A.length;j++){ int key=A[j];//key保存待排元素A[j]的值 i=j-1; while(i>=0&&A[i]>key){//因为子数组是已排好序的,所以从后往前比较大小找到A[j]应该插入的位置,并将比A[j]大的元素往后移动 A[i+1]=A[i]; i=i-1; } A[i+1]=key;//将A【j】插入到合适的位置。 } print(A); return A; } static void print(int [] A){ for(int i=0;i<A.length;i++){ System.out.print(A[i]+" "); } System.out.println(); } public static void main(String[] args) { int [] A=new int[6]; Random rand=new Random(); for(int i=0;i<A.length;i++) { A[i]=rand.nextInt(100); } print(A); insertSort(A); } }
以上是关于插入排序的主要内容,如果未能解决你的问题,请参考以下文章
代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?
将代码片段插入数据库并在 textarea 中以相同方式显示
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段