zoukankan      html  css  js  c++  java
  • 希尔排序法

    希尔排序法的原理类似于插入排序法,但它可以减少数据移动呢的次数。排序的原则是将数据划分为特定间隔的几个子集,以插入排序法排完子集内的数据后再逐渐减少间隔的距离。

    仔细看代码可以发现,其代码跟插入排序法很类似。

    #include<iostream>
    using namespace std;
    //希尔排序法
    int main()
    {
      int a[] = { 6, 9, 2, 3, 4, 7, 5, 1 };
      int size = sizeof(a) / sizeof(a[0]);//数组的大小

      int jmp=size/2;

      int i,j;
      int temp;//用来暂存数据
      while (jmp != 0)
      {
        for (i = jmp; i < size; i++)
        {
          temp = a[i];
          j = i - jmp;
          while (temp < a[j] && j >= 0)
          {
            a[j + jmp] = a[j];
            j = j - jmp;
          }
          a[jmp + j] = temp;
        }

      jmp = jmp / 2;

      }

      for (int i = 0; i < size; i++)//输出排好序的数组
      cout << a[i] << " ";

      return 0;
    }

  • 相关阅读:
    初涉数组
    声明
    简述java程序中的main方法
    概述java语言
    1.3 linux基础(三)
    linux基础之-screen命令
    1.2 linux基础(二)
    1.1 Linux基础(一)
    实验7-1-13 装箱问题
    实验7-1-12 组个最小数
  • 原文地址:https://www.cnblogs.com/a-dreaming-dreamer/p/5812799.html
Copyright © 2011-2022 走看看