t1.c

来自「直接插入排序算法的实现」· C语言 代码 · 共 25 行

C
25
字号
#include <stdio.h>

void  main(unsigned int *x)
{
  unsigned int i,j,t;
  float value;
  for(i=1;i<16;i++)
    {
      t=*(x+i);
      for(j=i-1;j>=0&&t<*(x+j);j--)
         {
	  *(x+1+j)=*(x+j);
	 }
      *(x+j+1)=t;            //直接插入法排序
      if(i>=4&&i<=12)
          value+=*(x+j+1);   //去处最大的4个和最小的4个
    }
  value=value/8;             //取剩余数的平均值 
  
}

在10K以下的数据处理中,直接插入排序法的执行时间最短
 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排
 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数
 也是排好顺序的。如此反复循环,直到全部排好顺序。与冒泡排序的效率相同。但它在速度上还是要高点,这是因为在冒泡排序下是进行值交换,而在插入排序下是值移动,所以直接插入排序将要优于冒泡排序

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?