zoukankan      html  css  js  c++  java
  • 算法导论(第三版)Exercises2.1(插入排序、线性查找、N位大数相加)

    关于练习程序的说明参见置顶的那篇。

    2.1-1:

    31 41 59 26 41 58

    31 41 59 26 41 58

    31 41 59 26 41 58

    26 31 41 59 41 58

    26 31 41 41 59 58

    26 31 41 41 58 59

    2.1-2:

    #include <stdio.h>
    
    void inverseInsertSort(int a[], int n);
    
    int main(int argc, char *argv[])
    {
        int i;
        int a[6] = {31, 41, 59, 26, 41, 58};
        inverseInsertSort(a, 6);
        for(i=0; i<6; i++)
            printf(" %d ", a[i]);
        printf("
    ");
        return 0;
    }
    
    void inverseInsertSort(int a[], int n) 
    {
        int i,j,key;
    
        for(i=1; i<n; i++)  
            if(a[0] < a[i])
            {
                key = a[i];
                a[i] = a[0];
                a[0] = key;
            }
    
        for(i=2; i<n; i++)
        {
            key = a[i];
            j = i - 1;
            while(key > a[j]) 
            {
                a[j+1] = a[j];  j--;
            }
            a[j+1] = key;
        }
    }
    View Code

    2.1-3:

    int linearSearch(int a[], int n, int value)
    {
        int i; 
    
        for(i=0; a[i]!=value && i<n ; i++);
    
        return i<n ? i: -1;
    }
    View Code

    初始化:i=0

    循环:a[i] !=value && i<n

    结束: a[i] = value  || i=n

    因为i从0开始增加,所以一定会结束循环

    2.1-4:

    void addNBits(int n1[], int n2[], int sum[], int n)
    {
        int i, flag=0; 
    
        for(i=0; i<n; i++)
        {
            sum[i] = n1[i] + n2[i] + flag;
            flag = sum[i] >> 1;
            sum[i] %= 2;
        }
        sum[n] = flag;
    }
    View Code
  • 相关阅读:
    mvc中HttpPost理解
    javascrip格式
    asp.net ToString()格式汇总
    Datatable根据多行排序
    sql server 判断是否存在数据库,表,列,视图
    IsPostBack是什么意思,如何运用?
    JS apply()的使用详解
    C++设计模式-Command命令模式
    C++ 继承和包含的区别?
    命令模式
  • 原文地址:https://www.cnblogs.com/xuanzhang/p/4638016.html
Copyright © 2011-2022 走看看