C语言教程—插入排序

3,687次阅读
没有评论

共计 630 个字符,预计需要花费 2 分钟才能阅读完成。

概念:插入排序是把一个记录插入到已排序的有序序列中,使整个序列在插入该记录后仍然有序。插入排序中较简单的种方法是直接插入排序,其插入位置的确定方法是将待插入的记录与有序区中的各记录自右向左依次比较其关键字值的大小。本实例要求使用直接插入排序法将数字由小到大进行排序。

   #include<stdio.h>
   int main(){int a[11] = {2, 3, 4, 5, 6, 7, 8, 9, 14, 15},t1,t2,i,j,end,number;
        printf(" 请输入一个数字:");
        scanf("%d",&number);
        end=a[9];    // 将目前最后个数字赋值给 end
       if(number>end){  // 如果插入的数字大于 end 则就直接最后一个元素就是 number
          number=a[10];
      }else{for(i=0;i<11;i++){  // 否则就进行比较 
           if(a[i]>number){  // 如果数字中的元素大于 num
             t1=a[i];     // 将 a[i] 的值赋值给 t1 
             a[i]=number; // 将 number 赋值给 a[i]
            for(j=i+1;j<11;j++){  // 在进行一轮比较直到大于前一个数字 小于后一个数字 然后将这个数字放在这两个数字中间
                 t2=a[j];
                 a[j]=t1;
                 t1=t2;  
             }
                break;
            }
       }
    }
    for(i=0;i<11;i++){printf("%5d",a[i]);    
    }
    return 0;
 }

运行第一种情况

 直接大于最后一个数字 直接放在最后:

QQ 截图 20210708144941.jpg

运行第二种情况:

 插入到中间:

C 语言教程 --- 插入排序

正文完
post-qrcode
 0
yu
版权声明:本站原创文章,由 yu 于2021-07-08发表,共计630字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码