冒泡排序:顾名思义就是向冒泡一样按照顺序进行依次比较排序,将每一个元素进行相互对比,然后再进行交换,形成一串有序的数据元素。今天对一个数组数据乱序元素进行整理并按照升序的顺序输出,算是小试一下,希望能举一反三。冒泡排序是最基础和最易理解的排序方式,是初学者最易掌握的排序方法,但冒泡排序也存在一定的劣势就是对比次数冗余,对于大规模的数据程序执行时间偏长,影响效率。

      编写数组元素冒泡排序的注意点:编写函数时接收数组的参数接收的值仅为数组元素首地址,而非整个数组,所以计算数组元素个数只能在函数外;还有就是在函数内层循环中必须根据外层循环进行循环变换,这样才能保证每个数据的比较和交换

参考代码:

#include<stdio.h>

void bubble_sort(int arr[], int sz)//对数组元素用冒泡进行升序排序

{

int i = 0;

for (i = 0; i < sz - 1; i++)//确定冒泡排序的总趟数为总个数减一趟

{

{

int r = 0;//当r=0时假设数组元素结果已经有序

int j = 0;

for (j = 0; j < sz - 1 - i; j++)//确定每一趟要冒泡循环执行的次数和过程

             {

if (arr[j] > arr[j + 1])//判断条件进行数据排序交换

{

int temp = 0;

temp = arr[j];

arr[j] = arr[j + 1];

    arr[j + 1] = temp;

r = 1;//如果进行了数据交换就表明数组元素当前无序,把r赋值为1

}

}

if (r == 0)//当r经过内层循环之后仍为0时说明此时已经有序就终止排序循环

{

break;

}

}

}

int main()

{

int arr[] = { 2,3,6,5,8,1 };

int i = 0;

int sz = sizeof(arr) / sizeof(arr[0]);//只能在函数外计算数组元素总个数

bubble_sort(arr, sz);

for (i = 0; i < sz; i++)

{

printf("%d ", arr[i]);//遍历数组中每一个元素数据并输出

}

return 0;

}



©著作权归作者所有:来自51CTO博客作者很菜的Jason的原创作品,如需转载,请注明出处,否则将追究法律责任

每一份赞赏源于懂得

赞赏

0人进行了赞赏支持

更多相关文章

  1. 最小生成树(C语言, prim算法)
  2. ES6的Set类型
  3. JS中的值传递,模板字面量,数组、对象、传参解构,访问器属性
  4. JavaScript:留言板添加字数实时统计与禁止超出功能,部分字符串和
  5. MyBatis传入参数为list 数组 map
  6. 0407作业-留言板、字符串和数组的常用方法
  7. Numpy
  8. 第 84 天:NumPy 数学函数
  9. 第 83 天:NumPy 字符串操作

随机推荐

  1. Laravel数据库获取值的常用方法
  2. PHP过滤数组中的0、null、false和''等空
  3. php使用QueryList轻松采集JavaScript动态
  4. php JSON数据格式化(美化)的方法
  5. PHP替换回车换行符的三种方法
  6. PHP中explode和implode的使用
  7. 非常实用的PHP常用函数汇总-加密解密、字
  8. PHP运算符优先级的一个例外
  9. 自学php有哪些好的方法
  10. php三个函数、两种选择防止sql注入