冒泡排序编程实现如下:
#include
#define LEN 10 //数组长度
void main( void ) {
intARRAY[10]={0,6,3,2,7,5,4,9,1,8}; //待排序数组 printf( ”
” );
for( int a = 0; a < LEN; a++ ) {printf( "%d ", ARRAY[a] ); }int i = 0;int j = 0;bool isChange;//打印数组内容//设定交换标志for( i = 1; i < LEN; i++ ) {isChange = 0;for( j = LEN-1; j >= i; j– ) {
if( ARRAY[j+1] < ARRAY[j] ) {ARRAY[0] = ARRAY[j+1];//最多做 LEN-1 趟排序 //本趟排序开始前,交换标志应为假 //对当前无序区 ARRAY[i..LEN]自下向上扫描//交换记录 //ARRAY[0]不是哨兵,仅做暂存单元} }ARRAY[j+1] = ARRAY[j]; ARRAY[j] = ARRAY[0]; isChange = 1;//发生了交换,故将交换标志置为真//打印本次排序后数组内容//本趟排序未发生交换,提前终止算法printf( "" );for( a = 0; a < LEN; a++){printf( "%d ", ARRAY[a] );}if( !isChange ){break;} }printf( "" );return; }



