冒泡排序
- 双层循环,挨个的把最大的值放到数组最后面
- 每一次外循环以后内循环就少循环一次
- 内循环-当前的值和下个值做比较,若当前的比后一个大,就交换值
图示
![在这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly90aW1nc2EuYmFpZHUuY29tL3RpbWc_aW1hZ2UmcXVhbGl0eT04MCZzaXplPWI5OTk5XzEwMDAwJnNlYz0xNTg3MTE5ODcxOTkyJmRpPTEzY2IxZGEzMjUxMjg4MDI4ZDUxOTk4NjQxYmQxOWQ1JmltZ3R5cGU9MCZzcmM9aHR0cCUzQSUyRiUyRjViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20lMkZpbWFnZXMlMkYyMDE4MDUyNyUyRmE5NGFmYjM2MjA2MTRiZmM5NTIzZWZjZDQyYzgzNDJhLmdpZg)
运行结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/922b710d946f63523e99aa643241c0b5.png)
附上代码
#include <stdio.h>
#include <stdlib.h>
void show_list(int arr[], int length, int index)
{
int i;
for (i = 0; i < index; i++)
{
printf("%d ", arr[i]);
}
printf("|");
for (i; i < length; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void bubble_sort(int arr[], int length)
{
int temp;
for (int i = 0; i < length; i++)
{
for (int j = 0; j < length - i - 1; j++)
{
if (arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
show_list(arr, length, length - i - 1);
}
}
int main()
{
int arr[10] = {1,9,2,8,3,7,4,6,5,0};
bubble_sort(arr, 10);
return 0;
}