程序员面试系列——冒泡排序
生活随笔
收集整理的這篇文章主要介紹了
程序员面试系列——冒泡排序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
雖然冒泡排序是排序算法里面最簡單的一種,但是不可輕視。我在應(yīng)屆生的面試和社招的面試中,都被問到了冒泡排序。
基本思想:冒泡排序?qū)儆谛U力法,它比較表中的相鄰元素,如果它們是逆序的話就交換它們的位置。重復(fù)多次后,最終,最大的元素就“冒”到列表的最后一個(gè)位置。第二遍操作將第二大的元素“冒”出來。這樣一直重復(fù),直到n-1遍(列表共有n個(gè)元素)以后,該列表就排序好了。
以n=4為例,示意圖如下。
C語言代碼如下:
void swap(int *a, int *b) {int temp;temp = *a;*a = *b;*b = temp; }//arr是數(shù)組首地址,len是數(shù)組長度 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)函數(shù)是非常主流的寫法,還有一種版本的寫法如下。
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); }} }這種寫法的示意圖如下。
【完】
總結(jié)
以上是生活随笔為你收集整理的程序员面试系列——冒泡排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 输出方格
- 下一篇: 淘汰率最高的腾讯产品面试题