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