一、代码实现
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void Bubble_sort(int arr[], int sz)//排序逻辑实现函数
{
int i = 0;
int j = 0;
int tmp = 0;
for (i = 0; i < sz - 1; i++)
{
for (j = i + 1; j < sz; j++)
{
if (arr[i] > arr[j])//判断前一个元素是否大于后一个元素
{
//元素数据内容的交换
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}//所得到的结果为升序
int main()
{
int arr[] = {3,4,7,4,23,5,7,9,2,14,};
int sz = sizeof(arr) / sizeof(arr[0]);//求出数组的元素个数
int i = 0;
printf("排序之前:");
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
Bubble_sort(arr, sz);
printf("\n排序之后:");
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
二、代码逻辑
- 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
通过两两相邻的元素进行比较,并根据结果进行相应的位置交换。
在上述代码中,若前一个元素小于后一个元素,则不进行交换;若大于,则交换。
该代码旨在通过所有元素的一一比较而得到排序后的结果。
三、拓展说明
该排序不仅可以对数字进行排序,也可以对字符进行排序。在对字符进行排序时,比较的是其ASCII码值的大小。
—— writing by Pan Qifan(潘琦藩) ——