zoukankan      html  css  js  c++  java
  • Incremental Method

    「遞增法」是符合電腦運作特性的方法。電腦執行程式,一次只做一個動作,完成了一件事才做下一件事。當一個問題太大太多時,化整為零、一個一個解決吧!

    合抱之木,生於毫末;九層之臺,起於累土;千里之行,始於足下。謹以此句與大家共勉。

    範例:加總數字

    無論電腦再怎麼強,還是得一個一個累加數字。

     
    1. void summation()
    2. {
    3.     int array[5] = {3, 6, 9, -8, 1};
    4.  
    5.     int sum = 0;
    6.     for (int i=0; i<5; i++)
    7.         sum += array[i];
    8.  
    9.     cout << "總和是" << sum;
    10. }
     
    1. int summation(int array[], int n)
    2. {
    3.     int sum = 0;
    4.     for (int i=0; i<n; i++)
    5.         sum += array[i];
    6.     return sum;
    7. }

    範例:複製字串

    無論電腦再怎麼強,還是得逐字複製。

     
    1. void copy()
    2. {
    3.     char s[15] = "incremental";
    4.     char t[15];
    5.  
    6.     int i;
    7.     for (i=0; s[i] != ''; i++)
    8.         t[i] = s[i];
    9.     t[i] = '';
    10.  
    11.     cout << "原本字串" << s;
    12.     cout << "複製之後的字串" << t;
    13. }
     
    1. void copy(char* s, char* t)
    2. {
    3.     int i;
    4.     for (i=0; s[i]; i++)
    5.         t[i] = s[i];
    6.     t[i] = '';
    7. }

    範例:選擇排序法( Selection Sort )

    找到第一小的數字,放在第一個位置;再找到第二小的數字,放在第二個位置。一次找一個數字,如此下去就會把所有數字按照順序排好了。

     
    1. void selection_sort()
    2. {
    3.     int array[5] = {3, 6, 9, -8, 1};
    4.  
    5.     for (int i=0; i<5; i++)
    6.     {
    7.         // 從尚未排序的數字當中,找到第i小的數字。
    8.         int min_index = i;
    9.         for (int j=i+1; j<5; j++)
    10.             if (array[j] < array[min_index])
    11.                 min_index = j;
    12.  
    13.         // 把第i小的數字,放在第i個位置。
    14.         swap(array[i], array[min_index]);
    15.     }
    16.  
    17.     // 印出排序結果。
    18.     for (int i=0; i<5; i++)
    19.         cout << array[i];
    20. }
     
    1. void selection_sort(int array[], int n)
    2. {
    3.     for (int i=0; i<n; i++)
    4.     {
    5.         // 從尚未排序的數字當中,找到第i小的數字。
    6.         int min_index = i;
    7.         for (int j=i+1; j<n; j++)
    8.             if (array[j] < array[min_index])
    9.                 min_index = j;
    10.  
    11.         // 把第i小的數字,放在第i個位置。
    12.         swap(array[i], array[min_index]);
    13.     }
    14. }

    範例:印出直角三角形

    多字成行,多行成直角三角形。由細微的東西開始,一件一件組起來。

     
    1. // 多字成行
    2. void print_line(int n)  // n 是一行的長度
    3. {
    4.     for (int i=1; i<=n; i++) cout << '@';
    5.     cout << ' ';
    6. }
    7.  
    8. // 多行成直角三角形
    9. void print_triangle(int n)  // n 是行數
    10. {
    11.     for (int i=n; i>=1; i--) print_line(i);
    12. }
  • 相关阅读:
    找到了2年前的一个微博小号
    Float Equal Problem
    有用的护肤品贴
    最近状态总结
    [Coursera]Machine Learning
    KMP算法(转载)
    [Leetcode] Median of Two Sorted Arrays
    [Algorithms(Princeton)] Week1
    [Algorithms(Princeton)] Week1
    [Leetcode] Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/blackiesong/p/6421244.html
Copyright © 2011-2022 走看看