实现简单排序
输入:
程序输入10个以空格分隔的整数(1~1000)
输出:
输出为一行,包括排序后的 1010 个输入整数,每两个整数之间有一个空格,最后一个整数后面没有空格
(1) 冒泡排序
#include <stdio.h>
int main ( ) {
int n = 10 ;
int numbers[ 10 ] ;
int i;
int swapped= 0 ;
int j;
for ( i = 0 ; i < n; i++ ) {
scanf ( "%d" , & numbers[ i] ) ;
}
for ( j= 0 ; j< n; j++ ) {
for ( i= 0 ; i< n- 1 - j; i++ ) {
if ( numbers[ i] < numbers[ i+ 1 ] ) {
int temp;
temp= numbers[ i] ;
numbers[ i] = numbers[ i+ 1 ] ;
numbers[ i+ 1 ] = temp;
}
}
}
for ( j= 0 ; j< n; j++ ) {
printf ( "%d" , numbers[ j] ) ;
if ( j!= 9 ) {
printf ( " " ) ;
}
}
return 0 ;
}
(2) 选择排序
#include <stdio.h>
int main ( ) {
int n = 10 ;
int max;
int numbers[ 10 ] ;
int i;
int temp= 0 ;
int j;
for ( i = 0 ; i < n; i++ ) {
scanf ( "%d" , & numbers[ i] ) ;
}
for ( i= 0 ; i< n- 1 ; i++ )
{
max= i;
for ( j= i+ 1 ; j< n; j++ )
{
if ( numbers[ j] > numbers[ max] )
max= j;
}
if ( max!= j)
{
temp= numbers[ i] ;
numbers[ i] = numbers[ max] ;
numbers[ max] = temp;
}
}
for ( j= 0 ; j< n; j++ ) {
printf ( "%d" , numbers[ j] ) ;
if ( j!= 9 ) {
printf ( " " ) ;
}
}
return 0 ;
}