欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

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.测试用例
测试用例一
在这里插入图片描述
测试用例二
在这里插入图片描述

上一篇: 排序算法

下一篇: Java 气泡排序

推荐阅读