一、插入排序

      类似玩纸牌时整理手中的纸牌,基本思想:依次将待排序序列中的每个记录插入到一个已经排好序的序列中直到全部记录都排好序。分为简单插入排序和希尔排序。

      简单插入排序

      void InsertSort(int r[],int n)

      {

            for(i=2;i<=n;i++)

            {

                  r[0] = r[i]

                  for(j=i-1;r[0]<r[j];j--)

                        r[j+1] = r[j];

                  r[j+1] = r[0];

            }

      }

      希尔排序

      void ShellSort(int r[],int n)

      {

            for(d=n/2;d>=1;d=d/2)

            {

                  for(i=d+1;i<=n;i++)

                  {

                        r[0] = r[i]

                        for(j=i-d;j>0&&r[0]<r[i];j=j-d)

                        {

                              r[j+d] = r[j];

                         }

                        r[j+d] = r[0];

                  }

            }

      }

 

posted on 2009-07-05 07:48  cwe  阅读(259)  评论(0编辑  收藏  举报