C#のforループの解析例

黄舟
リリース: 2017-05-21 10:50:19
オリジナル
2051 人が閲覧しました

この記事では、非常に参考値の高いforloopに関する古典的な事例を中心に紹介しています。以下のエディタで見てみましょう

forループはループ変数の初期値やループ終了条件を制御することで走査間隔を変更できるので、ソートや走査をする際にforを使うと比較的簡単です。以下のようにループします。 これらは、私が勉強した結果得られたいくつかの要約ケースです。

1.ソートの応用

1) 交換ソート: 取り出した数字とその数字の後ろにある残りの数字を1つずつ比較し、最大または最小の数字をグループの先頭に置きます。次に、2 番目に大きい数字を 2 番目の位置に置き、すべての数字を順番に並べます。

for(int i = 0; i < (num.length - 1); i ++)
{
  for(int j = i + 1; j < num.length; j ++)
  {
     if(num[i] > num[j])
      {
        int temp = num[j];
        num[i] = num[j];
        num[j] = temp;
      }
  }
}
ログイン後にコピー

上記のコードは、arraynumのi - num.lengthから最小値を見つけて最初の位置に格納します。ここで、numは大量のデータを格納する配列です。

2) バブルソート: 2 つの隣接する数値のサイズを継続的に比較することにより、大きい数値が常に後ろの位置に交換され、小さい数値が配列の先頭に向かって 浮かび上がります。

for (int i = nums.Length - 1; i > 0; i--)
{
  //在 0-i 范围内,将该范围内最大的数字沉到i
  for (int j = 0; j < i; j++)
  {
    if (nums[j] > nums[j+1])
    {
      //交换
      int temp = nums[j];
      nums[j] = nums[j+1];
      nums[j+1] = temp;
    }
  }
}
ログイン後にコピー

3) 選択ソート: ソートを交換することにより、範囲内の最小の数値が範囲内の最初の位置に繰り上げられます。

for (int i = 0; i < nums.Length - 1; i++)
{
  int index = i; //先假设最小数的下标是i
  for (int j = i + 1; j < nums.Length; j++)
  {
    if (nums[j] < nums[index])
    {
      index = j;
    }
  }
  int temp = nums[i];
  nums[i] = nums[index];
  nums[index] = temp;
}
ログイン後にコピー

2. 素数の決定

bool isFinnd = false;
for (int i = 2; i < num; i++)
{
  if (num % i == 0)
  {
    isFinnd = true;
    break;//当找到一个数 i 能够整除 num 时,说明当前的 num 是一个合数,结束当前的for循环
  }
}
if (!isFinnd)//如果 num 是一个质数,则报错提示
{
  //判断出当前的num是质数
}
ログイン後にコピー
現在のコードの num は特定の整数変数です。

上記のケースに加えて、もちろん多くのアプリケーションシナリオがあり、それらを使用する際には全員で要約する必要があります。

以上がC#のforループの解析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート