由於for迴圈可以通過控制迴圈變數的初始值和迴圈結束條件來改變遍歷的區間,所以在排序或者遍歷的時候,利用for迴圈就比較簡單,以下是本人學習後得到的一些總結案例。 1.排序的應用 1)交換排序:通過取出的數和該數位置後面剩餘的其他數逐一進行比較,將最大的或者最小的一個數放在一組數的首位,然後再將第二 ...
由於for迴圈可以通過控制迴圈變數的初始值和迴圈結束條件來改變遍歷的區間,所以在排序或者遍歷的時候,利用for迴圈就比較簡單,以下是本人學習後得到的一些總結案例。
1.排序的應用
1)交換排序:通過取出的數和該數位置後面剩餘的其他數逐一進行比較,將最大的或者最小的一個數放在一組數的首位,然後再將第二大的數放在第二位,依次排完所有的數。
1 for(int i = 0; i < (num.length - 1); i ++) 2 { 3 for(int j = i + 1; j < num.length; j ++) 4 { 5 if(num[i] > num[j]) 6 { 7 int temp = num[j]; 8 num[i] = num[j]; 9 num[j] = temp; 10 } 11 } 12 }
以上代碼就是實現將數組num中的最小值從i - num.length中找出來,並存在第一個位置,其中 num 是一個存放了大量數據的數組。
2)冒泡排序:通過不斷的將相鄰的兩個數進行大小比較,大的數不斷的往後面的位置交換,小的數向數組的頂部位置浮動。
1 for (int i = nums.Length - 1; i > 0; i--) 2 { 3 //在 0-i 範圍內,將該範圍內最大的數字沉到i 4 for (int j = 0; j < i; j++) 5 { 6 if (nums[j] > nums[j+1]) 7 { 8 //交換 9 int temp = nums[j]; 10 nums[j] = nums[j+1]; 11 nums[j+1] = temp; 12 } 13 } 14 }
3)選擇排序:通過交換排序的方式,將某個範圍內的最小數提到該範圍內的第一位。
1 for (int i = 0; i < nums.Length - 1; i++) 2 { 3 int index = i; //先假設最小數的下標是i 4 for (int j = i + 1; j < nums.Length; j++) 5 { 6 if (nums[j] < nums[index]) 7 { 8 index = j; 9 } 10 } 11 int temp = nums[i]; 12 nums[i] = nums[index]; 13 nums[index] = temp; 14 }
2.質數的判斷
1 bool isFinnd = false; 2 for (int i = 2; i < num; i++) 3 { 4 if (num % i == 0) 5 { 6 isFinnd = true; 7 break;//當找到一個數 i 能夠整除 num 時,說明當前的 num 是一個合數,結束當前的for迴圈 8 } 9 } 10 if (!isFinnd)//如果 num 是一個質數,則報錯提示 11 { 12 //判斷出當前的num是質數 13 }
當前代碼的 num 是一個具體的整型變數。
除了以上的案例,當然還有很多的應用場景,需要大家在運用的時候不斷自己總結。