您的位置:首页技术开发JAVA Script → Java入门教程——插入法排序

Java入门教程——插入法排序

时间:2010/11/9 11:14:51来源:至顶网作者:不详我要评论(0)

基本思路:每拿到一个元素,都要将这个元素与所有它之前的元素遍历比较一遍,让符合排序顺序的元素挨个移动到当前范围内它最应该出现的位置。

举个例子来说,就用前面的数组,我们要对一个有 5 个元素的数组进行升序排列,假设第一个元素的值被假定为已排好序了,那么我们就将第 2 个元素与数组中的部分进行比较,如果第 2 个元素的值较小,则将它插入到第 1 个元素的前面,现在就有两个元素排好序了,我们再将没有排序的元素与排好序的元素列表进行比较,同样,如果小于第一个元素,就将它插入到第一个元素前面,但是,如果大于第一个元素的话,我们就将它再与第 2 个元素的值进行比较,小于的话就排在第 2 个元素前面,大于的话,就排在第 2 个元素的后面。以此类推,直到最后一个元素排好序。

示例如下:
public class Test {

   public static void main(String[] args) {

   // 需要排序的数组,目前是按照升序排列的

      int a[] = new int[5];

      a[0] = 3;

      a[1] = 4;

      a[2] = 1;

      a[3] = 5;

      a[4] = 2;

 

      // 插入法排序

      int temp;

      for (int i = 1; i < a.length; i++) {// i=1开始,因为第一个元素认为是已经排好序了的

         for (int j = i; (j > 0) && (a[j] < a[j - 1]); j--) {

            //交换

            temp = a[j];

            a[j] = a[j - 1];

            a[j - 1] = temp;

         }

      }

      // 检测一下排序的结果

      for (int i : a) {

         System.out.println("i=" + i);

      }

   }

}
复制代码
运行结果:
i=1
i=2
i=3
i=4
i=5

如果你想要按照降序排列,很简单,只需要把: a[j] < a[j - 1]这句话修改成:a[j] > a[j - 1]就可以了。

相关视频

    没有数据

相关阅读 jdk不是有效的win32程序怎么办 jdk不是有效的win32程序解决方法java设置cookie教程 java怎么设置cookiejava怎么设置随机数 java设置随机数详细教程java怎么设置光标位置 java设置光标位置教程如何在Mac上清除Java高速缓存?如何在Mac上卸载Java?Mac上怎么卸载Java?OSX 10.11 java 6不兼容问题解决办法如何为Mac更新Java?java mac版更新教程

文章评论
发表评论

热门文章 JS文件中的中文在网页

最新文章 JS文件中的中文在网页关于一些Play 1.0.1资 JAVA中抽象类与接口的区别Java技巧:关于Cookie的操作JAVA AWT图形用户界面设计巧用Java将Word转换为Html网页文件

人气排行 JS文件中的中文在网页上显示为乱码解决方法怎么为Java程序添加漂亮背景图片代码JAVA AWT图形用户界面设计怎样获取java线程中信息JS简介及特点Java面向对象编程学习总结js鼠标滑过切换层效果代码下载教你java使用回调和线程处理响应全过程