程序员入门算法之- C 语言冒泡排序

“编程=数据结构+算法”,在看的第一本编程书籍中就有这句话。我们今天就看看C语言的冒泡排序算法吧。

直接上代码:

/*
 * @Author: 峰影
 * @Date: 2018-8-12
 * @LastEditors: 峰影
 * @LastEditTime: 2018-8-12
 * @Description: C 语言冒泡排序演示代码
 * @Copyright (C): 峰影-中心线
 * @FileName: main.c
 * @Version:
 * @Email: freerealmshn@163.com
 * @URL: https://www.z10.xin
 * @github:https://github.com/FY2008/cTEST
 * @FunctionList:
 * @License:
 */
#include <stdio.h>


/************* 函数原型声明 */
void bubbleSort(int *a, int length);


int main(void) {
  int test = 0;
  int a[] = {2,4,6,8,0,1,3,5,7,9, 11, 13, 15, 17, 19, 12, 14, 16, 18, 20};

//	for (test=0; test < 10; test++){
//		printf("test=%d\n", test);
//	}
  bubbleSort(a, 20);
  for (test=0; test < 20; test++) {
    printf("a[%d] = %d\n", test, a[test]);
  }
  return 0;
}


/* 冒泡排序函数定义 */
void bubbleSort(int *a, int length) {
  int i, j, t;
  for (i=0; i < length - 1 ; i++) { //外层循环 第一次循环 i=0 然后进入内层,在内层循环中执行一遍j=0到length - i - 1 之间的比较
    for (j=0; j < length - i - 1; j++) { // 内层循环
      if (a[i] < a[j]) {
        t = a[i];
        a[i] = a[j];
        a[j] = t;
      }
      printf("*");
      if(j == length - i - 1 -1) {
        printf("\n");
      }
    }
  }
}

/* 程序打印结果

*******************
******************
*****************
****************
***************
**************
*************
************
***********
**********
*********
********
*******
******
*****
****
***
**
*
a[0] = 0
a[1] = 1
a[2] = 2
a[3] = 3
a[4] = 4
a[5] = 5
a[6] = 6
a[7] = 7
a[8] = 8
a[9] = 19
a[10] = 9
a[11] = 11
a[12] = 13
a[13] = 15
a[14] = 17
a[15] = 12
a[16] = 14
a[17] = 16
a[18] = 18
a[19] = 20

*/

 

评论

  • 还没有任何评论,来说两句吧。

  • 0%