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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

程序员面试系列——冒泡排序

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 程序员面试系列——冒泡排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

雖然冒泡排序是排序算法里面最簡單的一種,但是不可輕視。我在應屆生的面試和社招的面試中,都被問到了冒泡排序。

基本思想:冒泡排序屬于蠻力法,它比較表中的相鄰元素,如果它們是逆序的話就交換它們的位置。重復多次后,最終,最大的元素就“冒”到列表的最后一個位置。第二遍操作將第二大的元素“冒”出來。這樣一直重復,直到n-1遍(列表共有n個元素)以后,該列表就排序好了。

以n=4為例,示意圖如下。

C語言代碼如下:

void swap(int *a, int *b) {int temp;temp = *a;*a = *b;*b = temp; }//arr是數組首地址,len是數組長度 void bubble_sort(int *arr, int len) {int i;int j;for(i=0; i<len-1; ++i){for(j=0; j<len-1-i; ++j){if(arr[j] > arr[j+1]) //從左至右按非降序排列{swap(arr+j, arr+j+1);}} } }

以上的void bubble_sort(int *arr, int len)函數是非常主流的寫法,還有一種版本的寫法如下。

void bubble_sort(int *arr, int len) {int start;int end;for (end=len-1; end>0; end--) {for (start=0; start<end; ++start) {if(arr[start] > arr[start+1])swap(arr+start, arr+start+1); }} }

這種寫法的示意圖如下。

【完】

總結

以上是生活随笔為你收集整理的程序员面试系列——冒泡排序的全部內容,希望文章能夠幫你解決所遇到的問題。

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