`
cuitongxin
  • 浏览: 27208 次
  • 性别: 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 < a.length; n = n + m) {
                //对特定数组索引构成的数组进行插入排序
                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;
            }
        }
    }
}

 

0
5
分享到:
评论

相关推荐

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

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

    数据结构java版 排序算法

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

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

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

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

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

    java版冒泡排序,插入排序,堆排序,快速排序,归并排序,希尔排序,桶排序

    在编程领域,排序算法是数据结构与算法学习中的基础部分,它们用于整理无序的数据序列。以下是关于Java实现的七种排序算法的详细说明: 1. **冒泡排序(Bubble Sort)**: 冒泡排序是一种简单的排序算法,通过不断...

    JAVA数据结构排序动态演示

    在编程领域,特别是Java开发中,数据结构和排序算法是至关重要的基础知识。这些算法和数据结构的高效使用直接影响到程序的性能和可读性。在这个"JAVA数据结构排序动态演示"项目中,开发者通过实现一系列经典的排序...

    <<数据结构>> 内部排序的java实现

    还有一些其他内部排序算法,如希尔排序、计数排序、桶排序、基数排序等,它们各有特点,适用于特定的数据分布和场景。在实际应用中,选择合适的排序算法需要考虑数据规模、数据分布以及对空间和时间效率的要求。 在...

    数据结构课程设计——排序综合课程设计

    1. **排序算法**:排序是数据处理的核心操作之一,常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序、希尔排序、计数排序、桶排序和基数排序等。每个算法都有其独特的思想和适用场景,如...

    希尔排序

    `ShellSort.java` 文件可能是实现希尔排序的Java代码示例。在该文件中,可以看到以下关键部分: - 定义间隔序列:这通常通过定义一个方法来实现,根据所选的序列生成一系列间隔。 - 插入排序:希尔排序的核心是插入...

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

    4. **堆排序**:堆排序利用了堆这种数据结构。首先构造一个大顶堆(或小顶堆),然后将堆顶元素与末尾元素交换,调整剩余元素重新成为堆,再重复这个过程。堆排序在最坏情况下时间复杂度为O(nlogn),且是原地排序,...

    快速排序、归并排序、希尔排序、冒泡排序、选择排序等8中排序方式原理分析java实现

    这里我们将深入探讨快速排序、归并排序、希尔排序、冒泡排序、选择排序以及插入排序这六种经典的排序算法,并通过Java语言来实现它们。 1. **快速排序**:由C.A.R. Hoare在1960年提出,是基于分治策略的一种高效...

    数据结构排序总结及java实现

    ### 数据结构排序总结及Java实现 #### 排序概述 排序是计算机科学中一项重要的基础技术,用于将一组数据按照特定顺序(升序或降序)进行排列。本篇文章将介绍几种常见的排序算法,并提供相应的Java实现代码。这些...

    java数据结构用到的排序程序

    在Java编程中,数据结构和排序算法是两个关键的概念,它们在处理大量数据时起着至关重要的作用。这里我们讨论的几个排序程序分别是直接插入排序、希尔排序、直接选择排序、冒泡排序和快速排序,以及一个不太常见的...

    Java语言编写的数据结构-排序

    本主题将深入探讨Java语言实现的六种常见排序算法:冒泡排序、选择排序、插入排序、希尔排序、快速排序以及堆排序。 首先,冒泡排序是一种简单直观的排序算法。它通过不断交换相邻的逆序元素,使得每一轮遍历后,...

    java数据结构之希尔排序

    总结起来,希尔排序通过设置间隔来优化插入排序,使得在处理大型数据集时,相比传统的插入排序能显著提高排序速度。虽然它不是稳定的排序算法,但其高效性在很多场景下是有优势的。在实际编程中,希尔排序常被用于...

    java数据结构与算法.pdf

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

    随手笔记--数据结构与算法(Java)排序

    适用人群:本人文档是通过Java语言来编写数据结构中排序的算法,所以要具备一定Java编程基础。以及想要复习或者自学数据结构的小伙伴。 能学到什么:1.六个基础排序算法,分别是冒泡排序,选择排序,插入排序,希尔...

    JAVA数据结构笔记

    在Java编程中,数据结构是理解复杂算法和高效程序设计的基础。本笔记主要涵盖了从第一章到第六章关于数据结构和Java语言的相关知识点。 第一章介绍了数据结构的基本概念,包括面向对象的特性如对象、继承和多态,...

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

    在IT领域,排序算法是计算机科学中的基础但至关重要的部分,尤其在数据处理和数据分析中起着关键作用。本文将详细探讨标题所提及的...在实际开发中,结合数据结构和算法,可以有效地处理大量数据,提升软件系统的效率。

Global site tag (gtag.js) - Google Analytics