您的位置:首页 > 编程语言 > C语言/C++

C语言之冒泡排序法

2021-02-27 12:20 906 查看

冒泡排序是常见的排序方法,算法思路是通过两层循环逐个将最大数放到底部,直到全部排列完毕。
如果要逆序排列,在内层循环中把最小数放到底部即可。
代码:

#include "stdafx.h"
#include "stdlib.h"
#include"conio.h"
#include <stdio.h>

int main(int argc, char* argv[])
{

int i = 0;
int j = 0;
int temp;
int count = 0;
int arr[10];
int n = sizeof(arr)/sizeof(arr[0]);

//生成一个随机数组
for(i=0;i<n;i++){
arr[i] = rand();
}
printf("排列前的数组:");
for ( int i=0; i< n; i++)
{
printf("%d, ",arr[i]);
}
/**
* 两轮循环:
* 内轮实现最大数放到最后;
* 外轮循环记录剩余数,让内轮循环每次操作剩余的未经排列的数字。
*/
for ( i=0; i< n-1; i++)
{
for ( j=0; j< n-1-i; j++)
{

if(arr[j]>arr[j+1])
{
temp    = arr[j];
arr[j]  = arr[j+1];
arr[j+1]= temp;
}
count++;
}
}

printf("排列后的数组:");
for ( int i=0; i< n; i++)
{
printf("%d, ",arr[i]);
}
printf("\n循环总轮数: %d\n",count);

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: