数组元素排序之冒泡排序
冒泡排序:顾名思义就是向冒泡一样按照顺序进行依次比较排序,将每一个元素进行相互对比,然后再进行交换,形成一串有序的数据元素。今天对一个数组数据乱序元素进行整理并按照升序的顺序输出,算是小试一下,希望能举一反三。冒泡排序是最基础和最易理解的排序方式,是初学者最易掌握的排序方法,但冒泡排序也存在一定的劣势就是对比次数冗余,对于大规模的数据程序执行时间偏长,影响效率。
编写数组元素冒泡排序的注意点:编写函数时接收数组的参数接收的值仅为数组元素首地址,而非整个数组,所以计算数组元素个数只能在函数外;还有就是在函数内层循环中必须根据外层循环进行循环变换,这样才能保证每个数据的比较和交换
参考代码:
#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;
}
- C语言示例六:对一个数组元素进行排序(冒泡排序)
- 定义一个数组长度为10的数组,其中数组元素为1-200之内的整数,利用冒泡排序将10个数组元素从小到大重新排序,并求出数组元素中能同时被5和7整除的数
- day06-1static 使用静态方法并生成文档取最值,选择排序,冒泡排序,位置交换,打印数组元素
- 数组元素的排序(冒泡排序,选择排序)
- 【数据结构】排序-直接插入排序 折半插入排序 冒泡排序 简单选择排序的实验应用
- 基础算法之四--排序: 之冒泡排序
- 冒泡排序 快速排序 选择排序 堆排序 直接插入排序 希尔排序 归并排序
- 排序之冒泡排序
- 【C++编程基础】#003 排序算法:选择排序、插入排序、冒泡排序、归并排序。
- 排序-冒泡排序
- 简单的排序算法——插入排序,选择排序,交换排序(冒泡排序,快速排序)
- 我要写算法(二)—— 排序之冒泡排序
- 【项目 4 - 数组的排序】编函数,完成冒泡排序
- 数据结构排序-交换排序-冒泡排序
- c++ 排序算法 插入排序、选择排序、冒泡排序 代码详解
- 交换排序之冒泡排序
- 冒泡排序随便写一串数字,用php实现排序
- 用JAVA实现排序算法之一:冒泡排序
- C#算法 选择排序、冒泡排序、插入排序
- java基本算法总结(冒泡排序、选择排序、插入排序)