下面我们看下一个算法是冒泡排序,这也是比较好理解的哈,冒泡,生动形象,我们可以类比到鱼的冒泡是一个道理,一个气泡呢,是从底部生成,然后慢慢向上浮动,我们知道通过一样的方式在排序算法上面我们也是这样子实现,如果一个数比较大,那么我们就可以让这个数向上浮动,直到所有的数值放在合适的位置。这个也是笔试当中经常考到的算法题,在实现上也比较简单,所有这个算法是一定要记住的,也是一定要能够手写的,面试题当中有可能会出现让你写出冒泡算法的题目,所以一定要注意。
下面我们看下具体的实现方式:
- <font size="4">#include <stdio.h>
- void bubble_sort(int a[], int length){
- int i = 0, j = 0;
- // 遍历整个数组
- for(i = 0; i < length; i++){
- // 从第二个数组的元素开始对比交换“冒泡”
- // for(j = length; j > i; j--){
- for(j = i + 1; j < length; j ++){
- if(a[j] < a[i]){
- int temp = a[i];
- a[i] = a[j];
- a[j] = temp;
- }
- }
- }
- }
- int main(void){
- int array[] = {12, 865, 78, 65, 89, 45, 22};
- int length = sizeof(array)/sizeof(array[0]);
- int i = 0;
- for(i = 0;i < length; i ++){
- printf("%d ",array[i]);
- }
- printf(".\n");
-
- // 使用冒泡算法
- bubble_sort(array, length);
-
- for(i = 0;i < length; i ++){
- printf("%d ",array[i]);
- }
- printf(".\n");
-
- return 0;
- }</font>
复制代码 (待补充。)