编码实现冒泡排序

匿名网友 匿名网友 发布于: 2015-12-29 00:00:00
阅读 130 收藏 0 点赞 0 评论 0

冒泡排序编程实现如下:
#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; }

评论列表
文章目录