C語言拯救計劃Day2-1之簡化的插入排序

//每日計劃10道題哦,天天覆習以前作過的題目數組

//多敲多練必定能有長進的!spa

//爲了你心中的。。。衝啊!code

 

本題要求編寫程序,將一個給定的整數插到本來有序的整數序列中,使結果序列仍然有序。blog

輸入格式:

輸入在第一行先給出非負整數N(<10);第二行給出N個從小到大排好順序的整數;第三行給出一個整數X。排序

輸出格式:

在一行內輸出將X插入後仍然從小到大有序的整數序列,每一個數字後面有一個空格。ip

輸入樣例:

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 }
相關文章
相關標籤/搜索