zoukankan      html  css  js  c++  java
  • C语言拯救计划Day2-1之简化的插入排序

    //每日计划10道题哦,每天复习之前做过的题目

    //多敲多练一定能有长进的!

    //为了你心中的。。。冲啊!

    本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。

    输入格式:

    输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。

    输出格式:

    在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。

    输入样例:

    5
    1 2 4 5 7
    3
    
     

    输出样例:

    1 2 3 4 5 7 

     1 #include<stdio.h>
     2 #include <stdlib.h>
     3 /**
     4 思路是:
     5 1.先找到x在原数组中的位置
     6 2.然后将数组中的元素都往后挪一位
     7 3.将X插入之前找到的那个位置
     8 4.输出排序后的数组
     9 */
    10 int main(){
    11       int m[12];///为了避免边界情况,数组一定要开大
    12       int n,i,x;
    13       scanf("%d",&n);///输入要排序的数字的个数
    14       for(i=0;i<n;i++){
    15             scanf("%d",&m[i]);
    16       }
    17       scanf("%d",&x);
    18       i=0;
    19       ///当排序好的数字小于x且i小于n时,i++
    20      ///目的是统计x是在排好序的那段数字中的什么位置
    21      ///找到要插入的数字在排好序的数字中的哪个位置
    22       while(m[i]<x&&i<n){
    23             i++;
    24             }
    25       ///利用for循环从n遍历到i,将数组的值向后挪一位
    26       ///目的是给那个要插入的X数字腾出位置
    27       for(int j=n;j>=i;j--){
    28             m[j+1]=m[j];
    29       }
    30       ///下面的语句的目的是将x插入到原数组中
    31       m[i]=x;///将x赋值给m[i],i就是之前找到的那个位置---X比之前的值都大,且小于后面的值
    32       ///输出现在的数组,即是插入排序后的数组
    33       for(int k=0;k<=n;k++){
    34             printf("%d ",m[k]);
    35       }
    36       return 0;
    37 }



  • 相关阅读:
    汇编/操作系统 索引帖
    极地网络
    河中跳房子游戏
    搬家大吉QAQQAQ
    【USACO3.1.1】Agri-Net最短网络
    浅谈二叉树
    Android面试经验汇总(二)
    Android面试经验汇总(一)
    Android 聊天室(二)
    Android 聊天室(一)
  • 原文地址:https://www.cnblogs.com/noobchen/p/12773264.html
Copyright © 2011-2022 走看看