`
Java_Fan
  • 浏览: 83211 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

结合舞蹈更易理解的算法--插入排序算法[java代码]

 
阅读更多

算法舞蹈视频:http://t.cn/hros0W

java代码实现:

/**
 * 插入排序
 * @author hsy
 *
 */
public class InsertSort
{
    private long[] a;
    private int nElems;
    
    public InsertSort( int max)
    {
        super();
        this.a = new long[max];
        nElems = 0;
    }
    
    /**
     * 向数组中插入数据
     * @param value
     */
    public void insert(long value){
        a[nElems] = value;
        nElems++;
    }
    
    /**
     * 打印数组
     *
     */
    public void display(){
        for(int i=0;i<nElems;i++){
            System.out.print(a[i]+",");
        }
        System.out.println("");
    }
    
    /**
     * 排序
     *
     */
    public void insertSort(){
        int out;
        int in;
        for(out=1;out<nElems;out++){
            long temp = a[out];
           in = out;
           while(in>0 && a[in-1]>=temp){
               a[in] = a[in-1];
               --in;
           }
           a[in] = temp;
        }
    }
    
    public static void main(String[] args){
        int max = 100;
        InsertSort arr = new InsertSort(max);
        
        arr.insert(10);
        arr.insert(5);
        arr.insert(45);
        arr.insert(8);
        arr.insert(34);
        arr.insert(78);
        arr.insert(22);
        arr.insert(68);
        arr.insert(82);
        arr.insert(53);
        arr.insert(7);
        arr.insert(99);
        arr.insert(57);
        arr.insert(72);
        
        arr.display();
        long start = System.currentTimeMillis();
        arr.insertSort();
        long end = System.currentTimeMillis();
        System.out.println("排序耗时:"+(end-start));
        arr.display();
    }
    
}

控制台打印:

10,5,45,8,34,78,22,68,82,53,7,99,57,72,
排序耗时:0
5,7,8,10,22,34,45,53,57,68,72,78,82,99,


分享到:
评论

相关推荐

    [Java算法-排序]-插入排序.java

    该资源包括实用练习,让读者可以练习在Java中实现插入排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    算法-数据结构和算法-11-插入排序.rar

    综上所述,插入排序是一种简单但实用的排序算法,适用于特定场景,通过理解其工作原理和优化方法,我们可以更好地选择和应用合适的排序算法。在实际编程中,了解和掌握不同排序算法的特点对于提升程序性能至关重要。

    详解Java常用排序算法-插入排序

    Java排序算法 - 插入排序 插入排序(Insertion Sort)是一种简单的排序算法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增 1 的有序表。该算法的实现非常简单,但其时间复杂度...

    [Java算法-排序]-堆排序.java

    该资源包括实用练习,让读者可以练习在Java中实现堆排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,帮助...

    java排序算法 - 附有源代码

    在提供的Java代码中,可以看到对选择排序和冒泡排序的实现。选择排序的`sortSelection`方法通过三重循环来实现,而冒泡排序的`sortBubble`方法则是通过两重循环来完成。这两个方法都嵌套了一个百万次的循环,可能是...

    经典排序算法源代码-插入排序-选择排序-冒泡排序

    通过阅读和实践这些代码,你可以深入理解排序算法的内部机制,为进一步学习更复杂的排序算法如快速排序、归并排序等奠定基础。同时,这些基础知识对于提升编程能力,优化数据处理效率,解决实际问题都有着重要作用。

    java排序算法

    本文将深入探讨Java中常见的几种基本排序算法,包括插入排序、交换排序、选择排序以及归并排序,并分析它们的基本思想、时间复杂度以及应用场景。 #### 插入排序 插入排序是一种简单的排序方法,它的工作原理类似...

    [Java算法-排序练习]计数排序.java

    该资源包括实用练习,让读者可以练习在Java中实现计数排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    [Java算法-排序练习]基数排序.java

    该资源包括实用练习,让读者可以练习在Java中实现基数排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

    各种排序算法比较(java实现)

    本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...

    [Java算法-排序练习]三色排序判断.java

    该资源包括实用练习,让读者可以练习在Java中实现三色排序判断,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持...

    8.12-8.19-冒泡-选择-插入-希尔-快速-归并-基数-堆排序-排序算法Swift代码及UI演示

    本资源集合了多种排序算法的Swift实现,并辅以UI演示,帮助开发者深入理解各种排序算法的工作原理及其在实际应用中的表现。 首先,我们来详细解析这些排序算法: 1. 冒泡排序(Bubble Sort):冒泡排序是最简单的...

    Java各种排序算法代码.zip

    Java是一种广泛使用的编程语言,...这些Java源代码可以作为学习和理解排序算法的实例,也可以作为代码库供开发者在项目中参考和使用。通过分析和比较这些算法,可以提高编程技巧,更好地理解数据结构和算法的重要性。

    图解算法小册-Java版

    - **理论与实践相结合**:先理解算法的基本原理,再通过实践加深印象。 - **独立思考与动手实践**:在掌握了算法原理的基础上,尝试自己编写代码,并与书中的示例进行比较,发现问题并改进。 - **参与讨论和交流**:...

    java代码-使用java解决java排序之-快速排序的问题的源代码

    java代码-使用java解决java排序之-快速排序的问题的源代码 ——学习参考资料:仅用于个人学习使用!

    排序算法.doc 详细讲解了插入排序、交换排序、选择排序、归并排序等排序算法的原理以及实现代码

    本文主要探讨四种基本的排序算法:插入排序、交换排序、选择排序和归并排序,这些都是内部排序的主要方法。 1. **插入排序**: - 直接插入排序是最基础的排序算法之一,它的工作原理类似于人们手动整理扑克牌。...

    用蛮力法实现选择排序,冒泡排序程序;用减治法实现插入排序;分治法应用-快排,合并排序,0-1背包问题;Prim算法求最小生成树。伪代码以及java代码实现

    在实验中,我们使用 Java 语言实现了选择排序、冒泡排序和插入排序的算法,并对其进行了测试。实验结果表明,蛮力法和减治法可以有效地解决排序问题,而分治法也可以用于解决复杂的算法问题。 五、结论 蛮力法、减...

    算法-基础算法- 排序算法(包含源程序).rar

    在这个压缩包“算法-基础算法- 排序算法(包含源程序).rar”中,你将找到关于排序算法的详细讲解以及可能包含的源代码实现。这篇文章将深入探讨排序算法的基本概念、类型以及它们在实际应用中的价值。 排序算法的...

    直接插入排序-算法领域中直接插入排序算法详解与Python实现

    内容概要:本文详细介绍了直接插入排序的...其他说明:文中提供了Python实现的直接插入排序算法代码,读者可以通过实践加深对该算法的理解。同时,对于算法性能的分析也有助于读者在选择排序算法时做出更加合适的选择。

    [Java算法-排序]希尔排序.java

    该资源包括实用练习,让读者可以练习在Java中实现希尔排序,并提供解决方案以帮助读者检查自己的工作并深入理解所学内容。 无论您是Java编程的初学者还是有经验的程序员,该资源都将为您提供有价值的指导和支持,...

Global site tag (gtag.js) - Google Analytics