画图解析冒泡排序算法:
?代码展示:输入10个整数,进行升序。(使用冒泡排序算法)
void Bubble_sort(int arr[],int sz)
{
int i = 0;
int j = 0;
int temp = 0;
for (i = 0; i < sz - 1; i++) //躺数
{
for (j = 0; j < sz - i - 1; j++) //交换次数
{
if (arr[j]>arr[j + 1]) //符合条件就交换 这是升序
{ //若为降序,只需改成if (arr[j]<arr[j + 1])即可运行
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main()
{
int arr[10] = {0};
int j = 0;
int i = 0;
int sz = 0;
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
sz = sizeof(arr) / sizeof(arr[0]); //求数组元素的个数
Bubble_sort(arr,sz); //传过去的arr是数组的首元素地址
for (j = 0; j < sz; j++)
printf("%d ", arr[j]);
printf("\n");
return 0;
}
运行结果升序:
?运行结果降序:
?简单分析:
?
|