一 :构思
将乱序数字排列成依次递增的数列
1.创建需要排序的数组
2.创建排序说用的函数
3.遍历数组
二 :交换函数
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
int text = 1;
for (i = 0;i < sz-1;i++)//sz-1表示最后一个数字无需排序
{
int j = 0;
for (j = 0;j < sz - 1 - i;j++)
{
int temp = 0;
if (arr[j] > arr[j + 1])
{
text = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}if (text == 1)
{
break;
}
}
此处text作用为验证所需要排序的数组是否是乱序,不为乱序直接输出,提高代码效率
三 :成品
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//冒泡排序
void number(int arr[],int sz)
{
//进行排序(1.数组本生无须排序2.数组需要排序)
int i = 0;
int text = 1;
for (i = 0;i < sz-1;i++)//sz-1表示最后一个数字无需排序
{
int j = 0;
for (j = 0;j < sz - 1 - i;j++)
{
int temp = 0;
if (arr[j] > arr[j + 1])
{
text = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}if (text == 1)
{
break;
}
}
}
//3便利排序后的数组
int main()
{
//1 创建需要排序的数组
int arr[] = {10,9,8,7,6,5,4,3,2,1};
int sz = sizeof(arr) / sizeof(arr[0]);
//2 写函数
number(arr,sz);
int i = 0;
for (i = 0;i < sz;i++)
{
printf("arr[%d]=%d\n", i, arr[i]);
}
return 0;
}