插入排序
Posted 啊远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序相关的知识,希望对你有一定的参考价值。
1、插入排序
对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余记录为无序序列,接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一个记录插入到有序序列中为止。
2、代码实现
1 package com.wcy.sort; 2 3 /** 4 * 时间:2016年10月19日 5 * 题目:插入排序 6 * 题目描述:对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余记录为无序序列,接着从第二个记录开始,按照记录的大小依次将当前处理的记录插入 7 * 到其之前的有序序列中,直至最后一个记录插入到有序序列中为止。 8 */ 9 public class InsertSortTest { 10 11 /** 12 * 直接插入排序 13 * @param arr 待排序的数组 14 * @return 排序之后的数组 15 */ 16 public static int[] insertSort(int[] arr){ 17 for (int i = 1; i < arr.length; i++) { 18 if (arr[i] < arr[i-1]) { 19 int temp = arr[i]; 20 arr[i] = arr[i-1]; 21 int j = i-2; 22 // 这里的j>=0必须放在temp<arr[j]之前,不然运行的时候会出数组范围。 23 for (; j >= 0&&temp < arr[j]; j--) { 24 arr[j+1] = arr[j]; 25 } 26 arr[j+1] = temp; 27 } 28 } 29 30 return arr; 31 } 32 33 /** 34 * 打印数组函数 35 * @param arr 待打印的数组 36 */ 37 public static void showArray(int[] arr){ 38 System.out.print("["); 39 for (int i = 0; i < arr.length; i++) { 40 if (i == arr.length-1) { 41 System.out.print(arr[i]); 42 }else { 43 System.out.print(arr[i] + ","); 44 } 45 } 46 System.out.println("]"); 47 } 48 49 /** 50 * 用户页面测试 51 * @param args 52 */ 53 public static void main(String[] args) { 54 int[] arr = {49,38,65,97,76,13,27,49}; 55 int[] arrResult = insertSort(arr); 56 showArray(arrResult); 57 } 58 }
以上是关于插入排序的主要内容,如果未能解决你的问题,请参考以下文章
代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?
将代码片段插入数据库并在 textarea 中以相同方式显示
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段