`
cuitongxin
  • 浏览: 26578 次
  • 性别: 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数据结构与算法编程基础全面系统教程

    JAVA数据结构与算法课程第05课双端链表和双向链表.mp4JAVA数据结构与算法课程第06课递归的应用.mp4JAVA数据结构与算法课程第07课递归的高级应用.mp4JAVA数据结构与算法课程第08课希尔排序.mp4JAVA数据结构与算法课程...

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

    主要介绍了java数据结构与算法之希尔排序,结合实例形式分析了希尔排序的概念、原理、实现方法与相关注意事项,需要的朋友可以参考下

    数据结构java版 排序算法

    总结的不错,值得一看 ...插入排序(直接插入排序、折半插入排序、希尔排序); * 2.交换排序(冒泡泡排序、快速排序); * 3.选择排序(直接选择排序、堆排序); * 4.归并排序; * 5.基数排序。

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

    主要介绍了数据结构基本算法希尔排序的相关资料,需要的朋友可以参考下

    Python数据结构和算法之希尔排序

    希尔排序的原理详见Java之希尔排序: https://blog.csdn.net/qq_43437122/article/details/105890206 代码如下: # author atguigu def shell_sort(arr_list): ''' 交换法,用希尔排序方法对列表进行排序 参数: ...

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

    Java数据结构与算法学习笔记之排序 冒泡排序,选择排序,插入排序,希尔排序, 归并排序, 快速排序.

    Java数据结构和算法

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

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

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

    JAVA数据结构排序动态演示

    Java数据结构的作业,写出直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序的算法,并用动态界面展示出来。

    java数据结构算法简介.txt

    相当好的一份数据结构与算法资源课(偏算法),但记住这个是java的。 算法包括归并、快速排序、二分查找法、希尔排序、冒泡排序、非比较排序等等。 数据结构有红黑树、AVL树,挺多,但是好像需要对树有一定的基础...

    java数据结构与算法第二版

    Java数据结构的类库 小结 问题 第2章 数组 Array专题Applet Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O表示法 为什么不用数组表示一切? 小...

    常用数据结构及其算法的Java实现

    本项目主要使用Java实现各种经典常用数据结构及其算法,包括但不仅限于链表、栈,队列,树,图等经典数据结构。 八大排序算法及其实现,具体包括直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序...

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

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

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

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

    数据结构和算法.md

    小白日记之八种排序算法——八种排序算法:冒泡排序、选择排序、插入排序、希尔排序、基数排序、堆排序、归并排序、快排

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

    Java数据结构和算法中文第二版(1) Java数据结构和算法中文第二版(2) 【内容简介】 本书可帮助读者: 通过由基于JAVA的演示所组成的可视专题讨论来掌握数据结构和算法 学会如何为常见和不太常见的编程条件选择...

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

    五种排序:冒泡 选择 插入 希尔 快速排序· 栈与队列的增删改查 树和图的基本操作 递归的用法 汉诺塔 全注释易懂

    JAVA数据结构算法视频教程

    第08讲 - 希尔排序 第09讲 - 快速排序 第10讲 - 二叉树的基本概念 第11讲 - 二叉树的基本操作 第12讲 - 遍历二叉树 第13讲 - 删除二叉树节点 第14讲 - 红黑树 第15讲 - 哈希表 第16讲 - 开放地址法 第17讲...

    Java数据结构与算法视频教程

    课程内容第一章: 数据结构与算法概述; 算法分析; 冒泡排序; 选择排序; 插入排序; 希尔排序; 归并排序;第二章: 快速排序; 排序稳定性分析; 顺序表; 链表;第三章: 栈; 队列; 符号表; 二叉查找树;第...

    数据结构中的八种排序算法

    数据结构中常用的八种排序算法,各个都非常经典,二分,折半,冒泡,希尔,归并,就是严蔚敏老师的数据结构上的所有排序算法的java实现版

Global site tag (gtag.js) - Google Analytics