排序补充

1.插入排序

void InsertionSort( int arr[], int num )
{
  int temp;
  int i, j;
  for ( i = 1; i < num; i++ )
    {
      temp = arr[i];
      for( j = i; j > 0 && arr[j-1] > temp; j--)
          arr[j] = arr[j-1];
          arr[j] = temp;
    } 
}

2.希尔排序

void ShellSort(int *arr, int n)
{
  int temp;
  int i, j, increment;
  for (increment = n/2; increment > 0; increment /= 2)
    {
      for(i = increment; i < n; i++)
        {
            temp = arr[i];
            for(j = i; j >= increment; j -= increment)
              {
                if(arr[ j - increment] > temp)
                  arr[j] = arr[ j - increment];
                else
                  break;
              }
              arr[j] = temp;
        }
    }   
}

3.选择排序

void SelectSort(int arr[]; int num)
{
   int i, j, Mindex, temp;
   for(i = 0; i < num; i++)
    {
      Mindex = i;
      for(j = i + 1; j < num; i++)
        {
          if(arr[j] < arr[Mindex])
          Medex = j;
        }
        temp = arr[i]; arr[i] = arr[Mindex]; arr[Mindex] = temp;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 单项选择题(共71题) 对n个元素的序列进行冒泡排序时,最少的比较次数是( )。A. n ...
    貝影阅读 9,295评论 0 10
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,755评论 0 15
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,243评论 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,293评论 0 2
  • 昨夜杯轻摇,半盏红唇烙。 却话巴山雨,莫淋美人蕉。
    林谋阅读 234评论 0 0