不知不覺就到了找工作的年紀,大三的生活也馬上告一段落了,今天搞了個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;
}