首頁 >php教程 >PHP开发 >經典排序演算法 - 冒泡排序Bubble sort

經典排序演算法 - 冒泡排序Bubble sort

高洛峰
高洛峰原創
2016-12-19 13:08:281187瀏覽

原理是臨近的數字兩兩進行比較,按照從小到大或者從大到小的順序進行交換,

這樣一趟過去後,最大或最小的數字被交換到了最後一位,

然後再從頭開始進行兩兩比較交換,直到倒數第二位時結束,其餘類似看例子

例子為從小到大排序,

原始待排序數組| 6 | 2 | 4 | 1 | 5 | 9 |


第一班排序(外循環)

第一次兩兩比較6 > 2交換(內循環)

交換前狀態| 6 | 2 | 4 | 1 | 5 | 9 |

交換後狀態| 2 | 6 | 4 | 1 | 5 | 9 |

 

第二次兩兩比較,6 > 4交換

交換前狀態| 2 | 6 | 4 | 1 | 5 | 9 |

? | 2 | 4 | 6 | 1 | 5 | 9 |

 

第三次兩兩比較,6 > 1交換

交換前狀態| 2 | 4 | 6 | 1 | 5 | 9 |狀態| 2 | 4 | 1 | 6 | 5 | 9 |

 

第四次兩兩比較,6 > 5交換

交換前狀態| 2 | 4 | 1 | 6 | 5 |

交換前狀態| 2 |後態| 2 | 4 | 1 | 5 | 6 | 9 |

 

第五次兩兩比較,6

交換前狀態| 2 | 4 | 1 | 5 | 6 |

交換後狀態| 2 | 4 | 1 | 5 | 6 | 9 |

 

第二次排序(外循環)

第一次兩兩比較2 交換前狀態| 2 | 4 | 1 | 5 | 6 | 9 |

交換後狀態| 2 | 4 | 1 | 5 | 6 | 9 |

 

第二次兩兩比較,4 > 1交換

交換前狀態| 2第二次交換| 4 | 1 | 5 | 6 | 9 | 

交換後狀態| 2 | 1 | 4 | 5 | 6 | 9 |

 

第三次兩兩比較,4  

第三次兩兩比較,4

交換前狀態| 2 | 1 | 4 | 5 | 6 | 9 | 

交換後狀態| 2 | 1 | 4 | 5 | 6 | 9 |


 

第四次兩兩比交換| 2 | 1 | 4 | 5 | 6 | 9 |

交換後狀態| 2 | 1 | 4 | 5 | 6 | 9 |

 

第三趟排序(外循環)

第一次兩兩比較2 > 1交換

交換後狀態| 2 | 1 | 4 | 5 | 6 | 9 |

交換後狀態| 1 | 2 | 4 | 5 | 6 | 9 |

 

比較,2

交換後狀態| 1 | 2 | 4 | 5 | 6 | 9 | 

交換後狀態| 1 | 2 | 4 | 5 | 6 | 9 |

 | 2 | 4 | 5 | 6 | 9 |


 

第三次。兩比較,4 交換後狀態| 1 | 2 | 4 | 5 | 6 | 9 | 

交換後狀態| 1 | 2 | 4 | 5 | 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();
        }

rrreee

經典排序演算法 - 冒泡排序Bubble sort


更多經典排序演算法- 冒泡排序Bubble sort相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn