插入排序

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 }

 

以上是关于插入排序的主要内容,如果未能解决你的问题,请参考以下文章

KDoc:插入代码片段

代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?

将代码片段插入数据库并在 textarea 中以相同方式显示

关于在各浏览器中插入音频文件的html代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段