当前位置:   article > 正文

C#算法之希尔排序

C#算法之希尔排序

        算法释义:希尔排序,也被称为缩小增量排序,是一种有效的排序算法,它是插入排序的一种更高效的改进版,通过比较一定间隔的元素来工作,然后逐步较少间隔来排序。

        小编的理解啊,希尔排序的本质就是不断的分割、分割、再分割,直到间隔为1,这个时候,算法就与插入排序一致了。

        希尔排序的优点:时间复杂度较小;属于原地排序,不需要额外的存储空间。

        闲言少叙,上代码:

  1. public static void sort(int[] arr) {
  2. int n = arr.length;
  3. int gap = n / 2; // 初始增量
  4. while (gap > 0) {
  5. for (int i = gap; i < n; i++) {
  6. int temp = arr[i];
  7. int j;
  8. // 对子序列进行插入排序
  9. for (j = i; j >= gap && arr[j - gap] > temp; j -= gap) {
  10. arr[j] = arr[j - gap];
  11. }
  12. arr[j] = temp;
  13. }
  14. gap /= 2; // 减少增量
  15. }
  16. }
  17. public static void main(String[] args) {
  18. int[] arr = {9, 8, 3, 7, 5, 2, 1, 6, 4};
  19. sort(arr);
  20. System.out.println("Sorted array: ");
  21. for (int i : arr) {
  22. System.out.print(i + " ");
  23. }
  24. }

        各位朋友,以上就是小编对希尔排序一点浅显的理解,希望给各位朋友一定的启发。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/513043
推荐阅读
相关标签
  

闽ICP备14008679号