zoukankan      html  css  js  c++  java
  • C语言实现整数数组的逆置算法

    读入100个整数到一个数组中,写出实现该数组进行逆置的算法。

    方法一:

    假设100个整数读入到数组a中,算法f1的思想是分别从数组两端依次将对应数进行交换,
    即a[i]与a[100 - i - 1]进行交换,i = 0~49。
    f1所需要的辅助变量为2个整型变量i和temp,与问题的规模无关,其空间复杂度为O(l)。

    代码如下:

    #include <stdio.h>
    
    void f1(int *a, int n)
    {
        int i, temp;
        for(i = 0;i <= n/2 - 1;i++)
        {
            temp = a[i];
            a[i] = a[n - i - 1];
            a[n - i - 1] = temp;
        }    
    }
    
    main()
    {
        int a[100],i;
        int n = 100;
    
        for(i = 0;i < n;i++)
        {
            a[i] = i;
        }
        f1(a, n);
    
        for(i = 0;i < n;i++)
        {
            printf("%d ", a[i]);
        }
    
        printf("
    ");
    }

    方法二:

    算法f2的思想是将数组a先逆置到数组b,再从数组b复制到数组a,

    需要辅助变量为1个整型变量i和大小为n=100的整型数组b(与问题的规模相关),
    其空间复杂度为O(n)。

    代码如下:

    #include <stdio.h>
    
    void f2(int a[], int n)
    {
        int i, b[100];
        for(i = 0;i < n;i++)
        {
            b[i] = a[n - i - 1];    
        }
            
        for(i = 0;i < n;i++)
            a[i] = b[i];
    }
    
    main()
    {
        int a[100],i;
        int n = 100;
    
        for(i = 0;i < n;i++)
        {
            a[i] = i;
        }
    
        f2(a, n);
    
        for(i = 0;i < n;i++)
        {
            printf("%d ", a[i]);
        }
    
        printf("
    ");
    
    }
  • 相关阅读:
    PowerShell Arrays
    PowerShell Hashtable
    PowerShell Variables
    MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
    神奇的Timer
    神奇的Timer之lock篇
    利用lambda表达式正确关闭WCF连接
    Zendstutio设置
    一个服务器部署多个项目
    Magento模块配置文件
  • 原文地址:https://www.cnblogs.com/lqcdsns/p/7309423.html
Copyright © 2011-2022 走看看