ソート・シリーズ--バブルと選択のソート

1817 ワード

最近仕事探しで忙しいので、面接でよく使うアルゴリズムをまとめるつもりです.自分は下でもアルゴリズムのことをよく研究していますが.しかし、記憶力がいいのは下手な筆頭ではなく、博文を書いて記録しましょう.今日はまず、私はiOSの开発をしているので、アルゴリズムも徐々に私の个人的な趣味になっています.もちろん、私はこの部分の内容を更新するために心を込めています.皆さんに助けてほしいです.
バブルソート
英文名:Bubble Sort.彼の原理は並べ替える数列を繰り返して、一度に2つの要素を比較して、もし彼らの順序が間違っていたら、彼らを交換します.訪問数列の作業は繰り返し行われ,必要な交換がなくなるまで数列が並べ替えられたことを示す.このアルゴリズム名の由来は,小さな要素ほど交換を介して徐々に数列の先端に「浮かぶ」からである.泡の順序付けのプロセス:1.2つの隣接する要素を比較します.1番目が2番目より大きい場合は、2つを交換する.各ペアの隣接要素に対して同じ作業を行い、最初のペアから最後のペアまで行います.このステップが完了すると、最後の要素は最大数3になります.以上の手順をすべて繰り返し、最後の4を除く.1対の数値が比較されないまで、ますます少ない要素に対して上記の手順を繰り返します.
実装コード:(ここではC言語の実装コードのみを与える)
void bubble_sort (int arr[], int length)
{
         int i, j, temp;
         for (i = 0; i < length; i++)
                  for (j = 0; j < len - 1 - i; j++)
                          if (arr[j] > arr[j + 1])
                          {
                                 temp = arr[j];
                                  arr[j] = arr[j + 1];
                                  arr[j + 1] = arr[j];
                          }                                  

}

ソートの選択
英文名:Selection Sortは、単純で直感的なソートアルゴリズムです.彼の仕事の原理は以下の通りです.まず、ソートされていない数の列に最小(大)要素を見つけて、ソートされたシーケンスの開始位置に保存し、残りのソートされていない要素から最小(大)要素を探して、ソートされたシーケンスの最後に配置します.すべての要素が整列するまで、このようにします.ソートプロセス:1.数列の各数を順に比較し、その中の最大値を探し出す.最大値の最初の数を交換位置3.残りの数について、残りの数が0になるまで上記の手順を繰り返します.
void selection_sort(int arr[], int len) 
 {
        int i, j, min, temp;
        for (i = 0; i < len; i++)
        {
                min = i;
                for (j = i + 1; j < len; j++)
                {
                        if (arr[min] > arr[j])
                                min = j;
                }
                temp = arr[min];
                arr[min] = arr[i];
                arr[i] = temp;
        }
}