zoukankan      html  css  js  c++  java
  • 有一个已经排好序的数组,要求输入一个数后,按原来顺序的规律将它插入数组中

    有一个已经排好序的数组,要求输入一个数后,按原来顺序的规律将它插入数组中

    【答案解析】

    将数据插入到已排序的序列中,只需两步即可:

    1. 找待插入元素在数组中的插入位置
    2. 插入元素

    具体如下:

    有一个已经排好序的数组,要求输入一个数后,按原来顺序的规律将它插入数组中

    注意:极端情况下,end可能会被减为-1,比如在上述序列中插入0

    【代码实现】

    #include<stdio.h>
    int main()
    {
    	int num = 0;
    	int array[10] = {1,2,3,4,5,6,7,8,9};
    
    	printf("请输入一个整数:");
    	scanf("%d", &num);
    
    	printf("原数组序列为:
    ");
    	for (int i = 0; i < 9; ++i)
    		printf("%d ", array[i]);
    	printf("
    ");
    
        // 数组为升序
        // 在数组中找待插入元素的位置,具体找的方式为:
        // 从后往前依次与数组中元素进行比较,如果要插入元素num比end位置数据小,则num一定插在end位置之前
        // 因此将end位置数据往后搬移一个位置
        // 如果num大于end位置元素或者end已经在区间最左侧,则位置找到
        // 最后将新元素插入到end+1的位置
    	int end = 8;
    	while (end >= 0 && num < array[end])
    	{
    		array[end+1] = array[end];
    		end--;
    	}
    
    	array[end + 1] = num;
    	printf("插入元素%d之后的结果为:
    ", num);
    	for (int i = 0; i < 10; ++i)
    		printf("%d ", array[i]);
    	printf("
    ");
    	return 0;
    }
    

    【结果截图】
    有一个已经排好序的数组,要求输入一个数后,按原来顺序的规律将它插入数组中

  • 相关阅读:
    CodeForces 1332D Walk on Matrix
    CodeForces 1324F Maximum White Subtree
    CodeForces-1324E-Sleeping-Schedule
    CodeForces-1324D-Pair-of-Topics
    理解字节序 大端字节序和小端字节序
    公钥 私钥 数字证书概念理解
    简要介绍 X Window System (又称为X11 or X)
    动态规划的简洁说明
    二分法的研究
    两个变量的内容交换
  • 原文地址:https://www.cnblogs.com/weiyidedaan/p/13661274.html
Copyright © 2011-2022 走看看