数据结构的冒泡排序怎么做啊?
发布网友
发布时间:2022-07-19 15:41
我来回答
共2个回答
热心网友
时间:2023-10-16 14:37
/*
iCount 数组总数
array 数组指针
bUp true-升序 false-降序
*/
bool fun1( int iCount , int *array , bool bUp )
{
for ( int i = 0 ; i < iCount ; i ++ )
{
for ( int j = i+1 ; j < iCount ; j ++ )
{
if ( bUp )
{
if ( array[i] > array[j] )
{
//change
int iTmp = array[i] ;
array[i] = array[j] ;
array[j] = iTmp ;
}
}
else
{
if ( array[i] < array[j] )
{
int iTmp = array[i] ;
array[i] = array[j] ;
array[j] = iTmp ;
}
}
}
}
printf( "\nResult:\n" , array[i] ) ;
for ( i = 0 ; i < iCount ; i ++ )
printf( "%d\n" , array[i] ) ;
return true ;
}
//主调用
int main(int argc, char* argv[])
{
int arr[] = { 10 , 6 , 9 , 1 , 2 , 3 ,4 ,5 , 8 , 7 } ;
fun1( 10 , arr , true ) ;
//fun1( 10 , arr , false ) ;
return 0;
}
热心网友
时间:2023-10-16 14:38
#ifdef N
#define N 200 // 待排序元素的个数,200个
#endif
void bubblesort(int R[N+1],int *p) // 起泡排序函数
{
int i,j,noswap;
int temp;
for (i=1; i<=N-1; i++) {
noswap=1;
for (j=N; j>=i+1; j--)
if(p[0]++,R[j]<R[j-1]) {
temp=R[j];
R[j]=R[j-1];
R[j-1]=temp;
p[1]+=3;
noswap=0;
}
if(noswap)
break;
}
}