冒泡排序的规则:n个数据进行冒泡排序,
首先将第一个数据和第二个数据进行比较,如果为逆序就交换两个数据的值,
然后比较第二个和第三个数据,
依此类推,直到第最后一个和倒数第二个比较完了为止。
上述过程为冒泡排序的第一趟冒泡排序,
其结果是最大或者最小的数据被放置在末尾的位置。
然后进行第二趟排序,把第二大或者第二小的数放置在倒数第二的位置,
之后每一趟排序都会使一个数据有序,
直到此序列的全部数据都有序为止。
代码示例:
#include <stdio.h>
#include<time.h>
/*冒泡排序*/
main(){
//定义无序数组
srand((unsigned)time(NULL));
int arr[10];
for (int i = 0; i < 10; i++)
{
arr[i] = rand() % 100;
printf("arr[%d]:%d\n", i, arr[i]);
}
//排序
for (int i = 9; i>0; i--)//外循环 趟数
{
for (int j = 0; j < i; j++)//每趟要做的事
{
//比较大小
//当前者比后者大 则交换
if (arr[j]>arr[j + 1])
{
arr[j] = arr[j] ^ arr[j + 1];//实现前者与后者的共同点
arr[j + 1] = arr[j] ^ arr[j + 1];//使用共同点得到前者
arr[j] = arr[j] ^ arr[j + 1];//使用共同点得到后者
}
}
}
printf("-------------------------------\n");
printf("交换后:\n");
for (int i = 0; i < 10; i++)
{
printf("arr[%d]:%d\n", i, arr[i]);
}
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!