面試官讓你手寫冒泡

不知不覺就到了找工作的年紀,大三的生活也馬上告一段落了,今天搞了個Java面試的專欄,用來總結一下我從大一開始的編程學習,幾天就從這個簡單的冒泡說起(以升序爲例)。
冒泡排序的核心思想就是,每一輪都會選出一個最大的到最右邊,這樣經過n-1輪之後,就把n-1個大的放到了右邊,也就是達到了升序的排序,這個算法的時間複雜度是n*n。

#include<stdio.h>

void bubbleSort(int a[],int n) {
        int i, j, temp;
        for (i = 0; i < n-1; i ++) {
                for (j = 0; j < n - i - 1; j ++) {
                        if (a[j] > a[j + 1]) {
                                temp = a[j];
                                a[j] = a[j + 1];
                                a[j + 1] = temp;
                        }
                }
        }
}

int main() {
        int a[] = {4,6,7,3,2,5,8,2,1,9};
        int i, n = 10;
        bubbleSort(a,n);
        for (i = 0; i < n; i ++) {
                printf("%d ",a[i]);
        }
        printf("\n");
        return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章