码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法之插入排序

时间:2015-04-11 10:15:17      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

 1 /*
 2     本例拟在实现插入排序
 3     插入排序:
 4         类似扑克牌的排序,开始时,左手为空,所有的牌位于桌面上。然后,每次从桌上拿起一张牌并插入到左手正确位置。
 5         注意点:左手中的牌始终是排好序的,比较时,将要比较的牌从左手最后一张牌开始比较,如果要比较的牌大,就直接放入左手最后一张
 6         否则,再与倒数第二张比较,直到找到符合条件的位置
 7 */
 8 public class Insertion
 9 {
10     public static void main(String[] args)
11     {
12         int[] a = {8,5,0,9,6,2,4,1};
13         sort(a);
14         for(int i=0; i<a.length; i++)
15         {
16             System.out.print(a[i] + " ");
17         }
18     }
19 
20     public static int[] sort(int[] a)
21     {
22         for(int i=1; i<a.length; i++)//假设左手中已经有一张牌
23         {
24             int key = a[i]; //key是用来往左手中插入的牌
25             int j = i-1;    //用key与左手中最后一张牌比较(左手中的牌已经排过序)
26             /*
27                 如果左手中最后一张牌大于key,则需要将key与左手中倒数第二张牌进行比较,此时将左手最后一张牌的序号增加1,以此类推
28                 如果左手最后一张牌小于key,则直接将该牌放在左手最后一张
29             */
30             while(j>=0 && a[j] > key)
31             {
32                 a[j+1] = a[j];
33                 j = j-1;
34             }
35             a[j+1] = key;
36         }
37         return a;
38     }
39 }

 

排序算法之插入排序

标签:

原文地址:http://www.cnblogs.com/JTechER/p/4417050.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!