`
cuitongxin
  • 浏览: 27063 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java 数据结构算法之希尔排序

 
阅读更多

最近一在校的校友求助哥们来一个希尔排序的JAVA版本实现,

好久没碰了,话费了一个小时搞定一个贴在下面,希望对有兴趣的同学有所帮助。

public class ShellSort {
 
    public static int[] a = {29,1,59,12,4,77,40,20,15,10,44,8,81,0,8,13,16};
 
    public static void main(String[] args) {
 
        //设置循环 - 步长 - 间隔
        for (int m = a.length / 2 ; m > 0; m = m/2) {
            //根据步长确定需要排序的数组下标索引
            for (int n=0; n < m; n++) {
                //对特定数组索引构成的数组进行插入排序
                shellSort(a,n,m);
            }
        }
 
        System.out.println(Arrays.toString(a));
    }
 
    /**
     * 简单的插入排序算法
     * @param a 需要进行插入排序的数组
     * @param startIndex 插入排序的起始索引
     * @param space 插入排序的步长
     */
    public static void shellSort(int[] a,int startIndex,int space) {
        //循环右边的无序队列  - 从左到右
        for (int i=startIndex + space; i<a.length; i+=space) {
            //循环插入到左边的有序队列中,并且使队列有序 - 从左到右
            for (int j=i-space; j>=startIndex; j-=space) {
                if (a[j+space] < a[j]) {
                    //移动有序交换位置
                    int temp = a[j+space];
                    a[j+space] = a[j];
                    a[j] = temp;
                }
                //break;
            }
        }
    }
}

 

分享到:
评论

相关推荐

    java数据结构与算法.pdf

    Java作为广泛应用的编程语言,其在实现数据结构和算法时有着丰富的库支持和优秀的可读性。下面将对标题和描述中提到的一些关键知识点进行详细解释。 1. **数据结构**: - **稀疏数组**:当大量数据中大部分为零或...

    java数据结构大作业,排序算法是性能比较

    在Java数据结构的学习中,排序算法的性能比较是一项重要的实践任务。这个大作业的主要目标是对多种排序算法,包括直接插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序和归并排序,进行性能分析。下面...

    java实现数据结构常见排序算法及详解

    ### Java 实现数据结构常见排序算法及详解 #### 排序算法概述 排序算法是计算机科学中的基础概念之一,主要用于将一系列数据按照特定规则进行排列。根据数据处理方式的不同,排序算法大致分为两大类:比较排序与非...

    数据结构java版 排序算法

    【数据结构与排序算法在Java中的应用】 在计算机科学中,数据结构是组织和存储数据的方式,而排序算法则是对这些数据进行排列的策略。在Java编程中,掌握各种排序算法对于提高程序效率至关重要。本篇文章将深入探讨...

    Java 希尔排序 算法 数据结构 数组 输出

    Java 希尔排序 算法 数据结构 数组 输出

    【超全!】图解Java数据结构和算法(共195集)【资料+视频+课件+代码+笔记】

    本教程是使用Java来讲解数据结构和算法,考虑到数据结构和算法较难,授课采用图解加算法游戏的方式。内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀...

    java数据结构与算法之希尔排序详解

    此外,希尔排序的代码简洁,容易实现,对中等规模数据排序效率较高,尤其适合对n^2复杂度算法优化需求的应用场景。对于大数据量的排序,更优的选择可能是归并排序或快速排序,这些算法在大规模数据上能够提供更好的...

    Java数据结构与算法

    这些基础知识构成了Java数据结构与算法的核心,理解并熟练运用它们,将极大地提升程序员的编程能力和解决问题的效率。在实际开发中,合理地选择和设计数据结构,优化算法,可以编写出更高效、更简洁的代码。

    java基础数据结构算法总结 面试

    Java是世界上最流行的编程语言...通过阅读和实践提供的"java数据结构基础算法"文件,你可以深入学习并掌握这些概念。在Java开发中,熟练掌握数据结构和算法能帮助你编写出高效、优雅的代码,从而在职业道路上更进一步。

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

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

    java数据结构算法

    Java数据结构与算法是计算机科学中的基础且至关重要的部分,它们是解决复杂问题和优化程序性能的关键工具。在Java编程中,理解并掌握各种数据结构和算法能够帮助开发者设计出更高效、更易于维护的软件系统。以下是...

    java 数据结构基本算法希尔排序

    尽管希尔排序不是稳定的排序算法(即相等的元素可能会改变原有的相对顺序),但相比简单的插入排序,它在处理大量数据时通常有更优的性能。 总结来说,希尔排序是一种提高插入排序效率的算法,通过设置间隔序列使得...

    Java数据结构与算法学习笔记之排序

    Java数据结构与算法学习笔记之排序,主要探讨了六种常见的排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序。这些排序算法是计算机科学的基础,无论是在日常开发还是面试中都经常遇到。现在...

    Java数据结构和算法

    (1)数据结构与算法概念解析 (2)数据结构之数组 (3)数据结构之栈 (4)数据结构之队列 (5)数据结构之链表 (6)数据结构之二叉树 (7)数据结构之霍夫曼树 (8)数据结构之红黑树(一)——基础分析 ...

    Java数据结构和算法中文第二版

    Java数据结构和算法介绍了计算机编程中使用的数据结构和算法,对于在计算机应用中如何操作和管理数据以取得最优性能提供了深入浅出的讲解。全书共分为15章,分别讲述了基本概念、数组、简单排序、堆和队列、链表、...

    JAVA数据结构排序动态演示

    在这个"JAVA数据结构排序动态演示"项目中,开发者通过实现一系列经典的排序算法并配合动态界面展示,使学习者能直观地理解各种排序算法的工作原理。 首先,我们来详细解析每个排序算法: 1. **直接插入排序(直接...

    JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序

    本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...

Global site tag (gtag.js) - Google Analytics