ホームページ  >  記事  >  php教程  >  古典的な並べ替えアルゴリズム - バブル ソート バブル ソート

古典的な並べ替えアルゴリズム - バブル ソート バブル ソート

高洛峰
高洛峰オリジナル
2016-12-19 13:08:281186ブラウズ

原則は、隣接する数字をペアで比較し、小さい数字から大きな数字へ、または大きな数字から小さな数字へ順番に交換することです。

そのような旅の後、最大または最小の数字を最後の桁に交換し、

それから開始します。再びペアごとの比較と交換を開始し、最後から 2 番目の桁で終了します。

ソートされる元の配列。 9 |

最初のペアごとの比較 (内側のループ) 6 | 4 1 |

交換後の状態| 2 | 6 | 1 | 9 |

交換前の状態 | | 2 | 4 | 6 | 9 |

交換前の状態 |交換 | 4 | 6 | 9 |

交換前の状態 | 6交換| 2 | 1 | 6 |

交換前の状態| | 2 | 4 | 6 | 9 |

最初のペア比較 2 | 4 6 | 9 |

交換後の状態 2 | 6 | 9 | 2 1 | 6 | 4 番目のペアごとの比較 2 | 6 | 9 |

交換後の状態

交換前の状態 | 5 | 6 | 9 |

2 | 4 | 6 |

最初のペアごとの比較 2 | 2 | 1 | 6 | 9 |

交換後の状態 | | 1 | 2 | 6 |

交換後の状態 |交換| 1 | 2 | 6 | 9 | 交換後の状態 (外側のループ) スワップなし

ソート後、最終結果が出力されます 1 2 4 5 6 9

コードは参考用です

static void bubble_sort(int[] unsorted)
        {
            for (int i = 0; i < unsorted.Length; i++)
            {
                for (int j = i; j < unsorted.Length; j++)
                {
                    if (unsorted[i] > unsorted[j])
                    {
                        int temp = unsorted[i];
                        unsorted[i] = unsorted[j];
                        unsorted[j] = temp;
                    }
                }
            }
        }

        static void Main(string[] args)
        {
            int[] x = { 6, 2, 4, 1, 5, 9 };
            bubble_sort(x);
            foreach (var item in x)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }

バブルソートアニメーションのデモ

より古典的なソート アルゴリズムについては、バブル ソート バブル ソート関連の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。