日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基础排序算法 – 冒泡排序Bubble sort

發布時間:2023/12/4 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基础排序算法 – 冒泡排序Bubble sort 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

然后再從頭開始進行兩兩比較交換,直到倒數第二位時結束。

?

從小到大排序:

原始待排序數組| 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 |?9 |
交換后狀態| 2 | 4 | 1?| 5 | 6 |?9 |

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

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

第二趟排序(外循環)

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

交換前狀態| 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 < 5不交換

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

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

交換前狀態| 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 < 4不交換

交換后狀態| 1?| 2 | 4 |?5 | 6 | 9 |
交換后狀態| 1?| 2 | 4 |?5 | 6 | 9 |

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

交換后狀態| 1 | 2?| 4 | 5 |?6 | 9 |
交換后狀態| 1 | 2?| 4 | 5 |?6 | 9 |

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

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

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

?

冒泡排序的動畫演示

?

C語言代碼:

  • #include?<stdio.h>?
  • int?main()?
  • {?
  • ????int?a[5]={5,4,3,2,1},i;?
  • ??
  • ????printf("原本的數字為:");?
  • ?????for(i=0;i<5;i++)?
  • ????{?
  • ????????printf("%d?",a[i]);?
  • ????}?
  • ????printf("\n");?
  • ??
  • ????void?bubble?(int?a[],int?n);?
  • ????bubble?(a,5);?
  • ??
  • ????printf("冒泡法排序后:");?
  • ????for(i=0;i<5;i++)?
  • ????{?
  • ????????printf("%d?",a[i]);?
  • ????}?
  • ????return?0;?
  • }?
  • ??
  • void?bubble?(int?a[],int?n)?
  • {?
  • ????int?i,j,temp;?
  • ????for(i=0;i<n-1;i++)?
  • ????{?
  • ????????for(j=i+1;j<n;j++)?
  • ????????{?
  • ????????????if(a[i]>a[j])?
  • ????????????{?
  • ????????????????temp=a[i];?
  • ????????????????a[i]=a[j];?
  • ????????????????a[j]=temp;?
  • ????????????}?
  • ????????}?
  • ????}?
  • }?
  • 引用來自:http://www.cnblogs.com/kkun/archive/2011/11/23/2260280.html

    轉載于:https://blog.51cto.com/wenryxu/1173274

    總結

    以上是生活随笔為你收集整理的基础排序算法 – 冒泡排序Bubble sort的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。