zoukankan      html  css  js  c++  java
  • 算法系列之归纳法

    选择排序:

    #include <iostream>
    using namespace std;
    #define LENGTH 10
    int data[LENGTH];
    
    void SelectSort(int i,int num)
    {
        if(i < num)
        {
            int k = i;
            for(int j = i+1;j <= num; j++)
                if(data[j]<data[k])
                    k = j;
            if(k!=i)
            {
                int temp = data[i];
                data[i] = data[k];
                data[k] = temp;
            }
            SelectSort(i+1,num);
        }
    }
    
    int main()
    {
        int num;
        cin>>num;
        for(int i = 1;i <= num; i++)
            cin>>data[i];
        SelectSort(1,num);
        for(int i = 1;i <= num; i++)
            cout<<data[i]<<" ";
        cout<<endl;
        return 0;
    }
    

      插入排序:

    #include <iostream>
    using namespace std;
    #define LENGTH 10
    int data[LENGTH];
    
    void InsertSort(int i)
    {
        if(i > 1)
        {
            int x = data[i];
            InsertSort(i-1);
            int j = i - 1;
            while(j>0&&data[j]>x)
            {
                data[j+1] = data[j];
                j = j-1;
            }
            data[j+1] = x;
        }
    }
    
    int main()
    {
        int num;
        cin>>num;
        for(int i = 1;i <= num; i++)
            cin>>data[i];
        InsertSort(num);
        for(int i = 1;i <= num; i++)
            cout<<data[i]<<" ";
        cout<<endl;
        return 0;
    }
    

     整数幂

    通常对于x的n次幂,一种直接的方法是对于x用迭代的方式自乘n次,这种方法十分的低效。一种高效的方法可以用如下方法推出,令m = [n/2],假设已经知道如何计算x的m次幂。那么情况分为两种:如果n为偶数,那么x的n次幂等于x的m次幂的平方;否则x的n次幂等于x乘以x的m次幂的平方。此想法可产生EXPREC所示的递归算法。

    #include <iostream>
    using namespace std;
    
    int power(int x,int m)
    {
        int y;
        if(m==0)
        y = 1;
        else
        {
            y = power(x,m/2);
            y = y*y;
            if(m%2==1)
            y = x*y;
        }
        return y;
    }
    
    int main()
    {
        int num1,num2;
        cin>>num1>>num2;
        cout<<power(num1,num2)<<endl;
        return 0;
    }
    

      

    态度决定高度,细节决定成败,
  • 相关阅读:
    JavaScript传递参数方法
    IScroll5不能滑到最底端的解决办法
    VS Less Compiler插件使用
    Sql查询某个字段是否包含小写字母
    试用VS2019正式版
    Ext.net MessageBox提示
    VS打开项目 提示Asp.net4.0未在web服务器上注册的解决方案
    罗技M185鼠标飘
    Ext.Net的一例Ext Undefined解决办法
    JGUI源码:DataTable固定列样式(20)
  • 原文地址:https://www.cnblogs.com/lxk2010012997/p/4394702.html
Copyright © 2011-2022 走看看