面试官让你手写冒泡

不知不觉就到了找工作的年纪,大三的生活也马上告一段落了,今天搞了个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;
}
发布了459 篇原创文章 · 获赞 298 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/HeZhiYing_/article/details/105003316