經(jīng)典排序算法——冒泡排序

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

這樣一趟過去后,最大或最小的數(shù)字被交換到了最后一位,

然后再從頭開始進行兩兩比較交換,直到倒數(shù)第二位時結(jié)束,其余類似看例子

例子為從小到大排序,

原始待排序數(shù)組| 6 | 2 | 4 | 1 | 5 | 9 |

第一趟排序(外循環(huán))

第一次兩兩比較6 > 2交換(內(nèi)循環(huán))

交換前狀態(tài)| 6 | 2 |4 | 1 | 5 | 9 |

交換后狀態(tài)| 2 | 6 |4 | 1 | 5 | 9 |

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

交換前狀態(tài)| 2| 6 | 4 |1 | 5 | 9 |

交換后狀態(tài)| 2| 4 | 6 |1 | 5 | 9 |

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

交換前狀態(tài)| 2 | 4| 6 | 1 |5 | 9 |

交換后狀態(tài)| 2 | 4| 1 | 6 |5 | 9 |

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

交換前狀態(tài)| 2 | 4 | 1| 6 | 5 |9 |

交換后狀態(tài)| 2 | 4 | 1| 5 | 6 |9 |

第五次兩兩比較,6 < 9不交換

交換前狀態(tài)| 2 | 4 | 1 | 5| 6 | 9 |

交換后狀態(tài)| 2 | 4 | 1 | 5| 6 | 9 |

第二趟排序(外循環(huán))

第一次兩兩比較2 < 4不交換

交換前狀態(tài)| 2 | 4 |1 | 5 | 6 | 9 |

交換后狀態(tài)| 2 | 4 |1 | 5 | 6 | 9 |

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

交換前狀態(tài)| 2| 4 | 1 |5 | 6 | 9 |

交換后狀態(tài)| 2| 1 | 4 |5 | 6 | 9 |

第三次兩兩比較,4 < 5不交換

交換前狀態(tài)| 2 | 1| 4 | 5 |6 | 9 |

交換后狀態(tài)| 2 | 1| 4 | 5 |6 | 9 |

第四次兩兩比較,5 < 6不交換

交換前狀態(tài)| 2 | 1 | 4| 5 | 6 |9 |

交換后狀態(tài)| 2 | 1 | 4| 5 | 6 |9 |

第三趟排序(外循環(huán))

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

交換后狀態(tài)| 2 | 1 |4 | 5 | 6 | 9 |

交換后狀態(tài)| 1 | 2 |4 | 5 | 6 | 9 |

第二次兩兩比較,2 < 4不交換

交換后狀態(tài)| 1| 2 | 4 |5 | 6 | 9 |

交換后狀態(tài)| 1| 2 | 4 |5 | 6 | 9 |

第三次兩兩比較,4 < 5不交換

交換后狀態(tài)| 1 | 2| 4 | 5 |6 | 9 |

交換后狀態(tài)| 1 | 2| 4 | 5 |6 | 9 |

第四趟排序(外循環(huán))無交換

第五趟排序(外循環(huán))無交換

排序完畢,輸出最終結(jié)果1 2 4 5 6 9

Python實現(xiàn)該算法

程序


結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容