`
祖祖cool
  • 浏览: 52419 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

自己写的一个选择排序和Shell排序例子

阅读更多
选择排序:
import org.rut.util.algorithm.SortUtil;
public class SelectionSort implements SortUtil.Sort {
    public void sort(int[] data) {
        int temp;
        for (int i = 0; i < data.length; i++) {
            int lowIndex = i;
            for (int j = data.length - 1; j > i; j--) {
                if (data[j] < data[lowIndex]) {
                    lowIndex = j;
                }
            }
            SortUtil.swap(data,i,lowIndex);
        }
    }
}



Shell排序:
import org.rut.util.algorithm.SortUtil;
public class ShellSort implements SortUtil.Sort{
    public void sort(int[] data) {
        for(int i=data.length/2;i>2;i/=2){
            for(int j=0;j<i;j++){
                insertSort(data,j,i);
            }
        }
        insertSort(data,0,1);
    }
    private void insertSort(int[] data, int start, int inc) {
        int temp;
        for(int i=start+inc;i<data.length;i+=inc){
            for(int j=i;(j>=inc)&&(data[j]<data[j-inc]);j-=inc){
                SortUtil.swap(data,j,j-inc);
            }
        }
    }
}

1
2
分享到:
评论

相关推荐

    几个shell编程的小例子

    1. **一百内的素数**:这个例子展示了如何在Shell中实现一个简单的素数检测算法。素数是指大于1且除了1和它自身外没有其他正因数的自然数。在Shell中,通常会用到循环(如for或while)和条件语句(if)来遍历并检查...

    基于python的排序算法-希尔排序Shell Sort

    以下是一个简单的Python实现希尔排序的例子: ```python def shell_sort(arr): n = len(arr) gap = n // 2 # 初始化增量为序列长度的一半 while gap &gt; 0: for i in range(gap, n): temp = arr[i] # 保存当前...

    使用希尔排序法对一维数组进行排序

    但是,由于增量序列的选择对排序效果有很大影响,选择合适的增量序列仍然是希尔排序的一个研究热点。 在实际编程实现时,希尔排序的代码可能如下(以Python为例): ```python def shell_sort(arr): n = len(arr)...

    多种排序法的例子及之间的比较

    **希尔排序** 是基于插入排序的一种更高效的改进版本,由Donald Shell于1959年提出。它通过将待排序的元素按一定间隔分组,然后对每组进行插入排序,随着间隔逐渐减小,直到间隔为1时,进行最后一次插入排序。希尔...

    c++几种常用的数字排序方法

    本文将深入探讨几种常见的数字排序方法,包括直接插入法、Shell排序、冒泡排序、快速排序以及选择排序。这些排序方法各有特点,适用于不同的场景,理解并掌握它们对于提升编程技能至关重要。 **1. 直接插入排序...

    希尔排序(Shell Sort)

    使用MATLAB实现一个简单的希尔排序的例子

    易语言希尔排序源码 JS调用例子

    它的主要思想是将待排序的数据按照一个增量序列分成若干子序列,然后对每个子序列进行插入排序,最后逐步减少增量,直到增量为1,完成整个序列的排序。希尔排序的时间复杂度在最坏情况下为O(n^2),但在实际应用中,...

    SSH2的jar包及的一个简单增删改查及分页和排序的例子

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络环境中提供安全的远程...在这个例子中,SSH2被用来演示基本的数据库操作,并展示了如何在Java应用中实现分页和排序,这对于初学者来说是一个很好的学习资源。

    五大排序的算法与实例

    冒泡排序、选择排序和插入排序因其简单性适合于小型数据集;希尔排序和快速排序则在处理大规模数据集时展现出更高的效率,尤其是快速排序,由于其优秀的平均时间复杂度,常被视为最常用的通用排序算法之一。

    内部排序算法合集(插入、希尔、起泡、快速、选择、堆、归并和基数排序)

    内部排序合集(插入、希尔、起泡、快速、选择、堆、归并和基数排序) 这是我在我们期末的时候写的一些内部排序的例子。因为我们的数据结构考试的范围就限定在内部排序上,所以我没有什么办法,只好对自己埋头苦干就...

    PHP排序算法之希尔排序(Shell Sort)实例分析

    例如,如果一个元素在另一个相等元素之前,但在排序过程中被错误地放在了后面,希尔排序就失去了稳定性。 总结来说,希尔排序是一种非常实用的排序算法,尤其在处理大型数据集时,它的效率比简单的直接插入排序更高...

    希尔排序C语言实现

    以下是一个简单的C语言实现希尔排序的例子: ```c void shellSort(int arr[], int n) { int gap, i, j, temp; for (gap = n / 2; gap &gt; 0; gap /= 2) { for (i = gap; i ; i++) { temp = arr[i]; j = i; ...

    排序算法(希尔排序, 快速排序...) C语言

    快速排序的过程主要包括两个步骤:选择一个基准元素并根据它将数组分为两部分,一部分的元素都比基准小,另一部分的元素都比基准大,然后对这两部分分别进行快速排序。这种算法的平均时间复杂度为O(n log n),在最坏...

    C#算法 -- (三)希尔排序.doc

    在这个上下文中,可以考虑将希尔排序作为一个接口或抽象类定义,然后创建具体的排序算法类(如`ShellSort`)来实现这个接口或继承这个抽象类,这样可以增强代码的可扩展性和复用性。 总的来说,希尔排序是一种改进...

    java排序方法.pdf

    这个文档“java排序方法.pdf”涵盖了多种经典的排序算法的实现,包括插入排序、冒泡排序、选择排序、Shell排序以及更高效的快速排序、归并排序和堆排序。下面我们将详细探讨这些排序算法。 1. **插入排序(Insertion...

    Python-Python库根据数据的相对排序在shell中生成sparklines

    以下是一个简单的例子,展示如何根据一组数据生成sparkline: ```python from spark import Spark data = [2, 4, 6, 8, 10, 8, 6, 4, 2] spark = Spark() spark.spark(data) ``` 在shell中运行这段代码,将输出一...

    希尔排序(java)

    希尔排序(Shell Sort)是一种基于插入排序的快速排序算法,由Donald Shell于1959年提出。...尽管如此,希尔排序仍然是一个实用的排序算法,尤其在处理大量数据时,如果能选择合适的增量序列,可以取得不错的性能效果。

    插入类排序希尔排序

    - `ShellSort`函数接收一个元素数组`x[]`,其长度`n`,增量序列`d[]`和序列的长度`Number`作为参数,执行希尔排序。 - `main`函数中,创建了一个包含12个元素的数组`test[]`,并调用`ShellSort`进行排序,最后打印...

    c++希尔排序算法实现源代码 原创

    在这个例子中,我们首先定义了一个希尔排序的函数`shellSort`,它接受一个整型向量`arr`作为参数。然后,通过一个循环,逐渐减小增量gap,进行插入排序。在每次插入排序中,我们将当前元素与前gap个元素进行比较,...

Global site tag (gtag.js) - Google Analytics