C 语言版冒泡排序算法详解 - 三、C 程序的冒泡排序算法
最编程
2024-04-19 09:24:01
...
1.冒泡排序算法之C语言版
/*
功能:使用选择排序法对数组data进行排序
输入参数:
data[],已知数据散乱的数组
n,元素的个数
输出参数:
data[],排好序的数组
返回值:无
*/
void BubbleSort( int data[], int n )
{
int i, j, k, t;
for( i = 1; i <= n-1; i++ )
{
for( j = 1; j <= n-i; j++ )
{
if( data[j+1] < data[j] )
{
t = data[j+1];
data[j+1] = data[j];
data[j] = t;
}
}
}
}
2.完整的代码(仅供参考)
#include"stdio.h"
#define MaxLength 100
int TotalNum = 0;
void InputData( int &count, int arrt[] );
void BubbleSort( int data[], int n );
int main()
{
int count = 0, i, j;
int data[MaxLength];
InputData( count, data );
printf( "排序前的数据:" );
for( i = 1; i <= count; i++ )
{
printf( "%5d", data[i] );
}
printf( "\n" );
BubbleSort( data, count );
return 0;
}
/*
功能:使用选择排序法对数组data进行排序
输入参数:
data[],已知数据散乱的数组
n,元素的个数
输出参数:
data[],排好序的数组
返回值:无
*/
void BubbleSort( int data[], int n )
{
int i, j, k, t;
for( i = 1; i <= n-1; i++ )
{
for( j = 1; j <= n-i; j++ )
{
if( data[j+1] < data[j] )
{
t = data[j+1];
data[j+1] = data[j];
data[j] = t;
}
}
//输出每一轮排序结果
printf( "第 %d 趟排序:", i );
for( k = 1; k <= n; k++ )
{
printf( "%5d", data[k] );
}
printf( "\n" );
}
}
//从键盘读入一组整数存储到数组arr中,元素个数存储到count中
void InputData( int &count, int arrt[] )
{
int i = 0, data;
while( 1 )
{
printf( "input an integer(end of 65535)" );
scanf( "%d", &data );
if( data == 65535 )
{
break;
}
else
{
arrt[++i] = data;
}
}
count = i;
}
3.测试用例
测试用例一
测试用例二
推荐阅读
-
什么是冒泡算法?详细解释排序冒泡的原理?用 C 语言实现冒泡算法。
-
气泡排序(超级详细)--升序",从小到大;另一种是 "降序",从大到小。该主题可抽象为 "按升序对 n 个数字排序 "的一般形式。 排序是一种重要的基本算法。排序的方法有很多种,但在本题中我们将使用冒泡排序法。 冒泡法的基本思想 冒泡法的基本思想是,每次比较相邻的两个数字时,较小的那个会被移到前面。如果有 5 个数字9,8,5,2,0,第一次将前两个数字 8 和 9 互换。第二次将第二个和第三个数字(9 和 5)对调......这样一共对调 4 次,得到 8-5-2-0-9 的顺序,可以看到:最大的数字 9 一直在 "下沉",成为最下面的一个数字,而小的数字 "上升" 最小的数字 "上升"。最小的数字 0 已经向上 "浮 "了一个位置。经过第一次比较(共 4 次比较和交换),得到了最大的数字 9。 然后进行第二趟比较,对剩下的前 4 个数字(8、5、2、0)进行新一轮比较,这样第二个最大的数字就 "沉到了底部"。同样,按照上述方法进行第二轮比较。经过 3 次比较和交换,我们得到了第二大数 8。 按照这个规律,我们可以推断出,比较 5 个数字需要 4 次旅行,才能将 5 个数字从小到大排列起来。在第一次旅行中,两个数字之间进行了 4 次比较,在第二次旅行中,进行了 3 次比较......在第四次旅行中,只进行了一次比较。 思路总结 总结:如果有 n 个数字,那么要进行 n-1 次比较。在第一次行程中进行 n-1 次比较,在第 i 次行程中进行 n-i 次比较。
-
C 语言版冒泡排序算法详解 - 三、C 程序的冒泡排序算法
-
c++ 排序算法 - 冒泡排序(不懂必读,超级详细)
-
C++ 冒泡排序算法示例
-
[排序算法] Bubble Sort (C) - Easy Take!-CSDN博客 - I. 冒泡排序的原理
-
三种算法的优缺点:冒泡排序、插入排序和选择排序。