资讯专栏INFORMATION COLUMN

Java算法学习之路---直接插入排序

shadajin / 1206人阅读

摘要:刚想写写插入排序算法,突然发现有点生疏,百度了一下,了解其基本思想之后,就开始了。直接插入排序算法思路是待排序记录,,,第一步将无序表打第一个元素作为一个有序表。第二步将加入到有序表中,使有序表依旧有序第步,,,以此类推。

刚想写写插入排序算法,突然发现有点生疏,百度了一下,了解其基本思想之后,就开始coding了。

直接插入排序算法思路是:
待排序记录 R1,R2,… ,Rn–1, Rn
第一步:将无序表打第一个元素作为一个有序表。
第二步:将R2加入到有序表中,使有序表依旧有序
.........
第 n 步: (R1,R2,… ,Rn–1), Rn.
以此类推。
直接插入排序算法的时间复杂度,最好的情况是待排序记录是有序的,O(N),最坏打情况是记录从大到小排列,O(N2)。

贴出我的代码

    //这是我写的一个排序方法和输出方法
   public static void sort(int[] data) {
        for (int index = 1; index <= data.length - 1; index++) {
            int temp = data[index];
            int j = index - 1;
            for (; j >= 0 && temp < data[j]; j--) {
                data[j + 1] = data[j];
            }
            data[j + 1] = temp;
        }
    }


    public static void print(int[] data) {
        for (int out : data) {
            System.out.print(out + "	");
        }
        System.out.println();
    }

以下是用一个测试类来测试结果

package DirectInsert;

/**
 * Created by linxs on 16-6-14.
 */
public class TestSort {
    public static void main(String[] args) {
        int[] data = {9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
        Sort.print(data);
        Sort.sort(data);
        Sort.print(data);
    }
}

代码比较简单,就不多做赘述了,最后看运行结果。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64808.html

相关文章

  • 优秀程序员都应该学习的 GitHub 上开源的数据结构与算法项目

    摘要:强烈推荐上值得前端学习的数据结构与算法项目,包含图的演示过程与视频讲解。该仓库包含了多种基于的算法与数据结构,提供进一步阅读的解释和链接。数据结构和算法必知必会的个代码实现。 showImg(https://segmentfault.com/img/bVbvpYZ); 前言 算法为王。想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手;只有内功深厚者,前端之路才会走得...

    cheukyin 评论0 收藏0
  • Javag工程师成神之路(2019正式版)

    摘要:结构型模式适配器模式桥接模式装饰模式组合模式外观模式享元模式代理模式。行为型模式模版方法模式命令模式迭代器模式观察者模式中介者模式备忘录模式解释器模式模式状态模式策略模式职责链模式责任链模式访问者模式。 主要版本 更新时间 备注 v1.0 2015-08-01 首次发布 v1.1 2018-03-12 增加新技术知识、完善知识体系 v2.0 2019-02-19 结构...

    Olivia 评论0 收藏0
  • 算法学习之路排序之快速排序Java实现)

    摘要:接下来我来说明快速排序的思路以及实现的代码。快速排序思路首先是定义一个变量,把数组的第一个元素的值赋给,然后定义两个变量指向数组的第一个元素和最后一个元素。 今天突然想写个排序,以前写过,然后写了之后一直出错,然后自己百度了一下,看了别人写的方法,自己也尝试着写了一个。接下来我来说明快速排序的思路以及实现的代码。 快速排序思路:首先是定义一个变量key,把数组的第一个元素的值赋给key...

    charles_paul 评论0 收藏0
  • JavaScript 数据结构与算法之美 - 冒泡排序插入排序、选择排序

    摘要:之所以把冒泡排序选择排序插入排序放在一起比较,是因为它们的平均时间复杂度都为。其中,冒泡排序就是原地排序算法。所以冒泡排序是稳定的排序算法。选择排序思路选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间。 showImg(https://segmentfault.com/img/bVbuvnj?w=900&h=250); 1. 前言 算法为王。 想学好前端,先练好内功,...

    canger 评论0 收藏0

发表评论

0条评论

shadajin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<