java - Shell 排序 Java 示例

标签 java algorithm sorting shellsort

谁能给我一个关于 shell 排序的例子?我是这里的新人,必须学习 shell 排序,但首先我必须找到一个 Java shell 排序示例。我在 Google 上找到了一个例子,但是太难了。

最佳答案

这里,这段代码非常简单:

/**
   * Shellsort, using Shell’s (poor) increments.
   * @param a an array of Comparable items.
   */
  public static <T extends Comparable<? super T>>
  void shellsort( T [ ] a )
  {
    int j;
    for( int gap = a.length / 2; gap > 0; gap /= 2 )
    {
      for( int i = gap; i < a.length; i++ )
      {
         T tmp = a[ i ];
         for( j = i; j >= gap && tmp.compareTo( a[ j - gap ] ) < 0; j -= gap )
         {
           a[ j ] = a[ j - gap ];
         }
         a[ j ] = tmp;
      }
    }
  }

我从一本名为 Data Structures and Algorithm Analysis in Java. 的书中偷走了它这是一本很好的书,通俗易懂。我建议您阅读它。

关于java - Shell 排序 Java 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4833423/

相关文章:

C++按字母顺序对结构的 vector 进行排序

c++ - C++11 std::sort 在不同的 STL 实现中使用了哪些算法?

java - 堆排序工作 99%

java - Spring @ExceptionHandler(Exception.class) 总是被调用。为什么?

java - 可重入同步陷入无限循环

javascript - 如何围绕最小值划分链表

php - 从字幕文件中删除 "acceleration"

algorithm - 在A*搜索算法中,为什么要加上g(n)?

使用变量泛型作为值的 Java Map

java - Couchbase批量子文档操作