1void stringReverse( char array[] )
2{
3 if ( array[0] == '\0' )
4 return;
5 stringReverse( array + 1 );
6 printf( "%c", array[0] );
7}
2{
3 if ( array[0] == '\0' )
4 return;
5 stringReverse( array + 1 );
6 printf( "%c", array[0] );
7}
2.输出数组
1void printArray( int array[], int size )
2{
3 if( size == 0 )
4 return;
5 printf( "%d ", array[0] );
6 printArray( ++array, --size );
7}
2{
3 if( size == 0 )
4 return;
5 printf( "%d ", array[0] );
6 printArray( ++array, --size );
7}
3.查找数组中的最小值
1int recursiveMinimum( int array[], int size )
2{
3 if ( size == 1 )
4 return array[0];
5
6 if ( array[ size - 1 ] < recursiveMinimum( array, size-1 ) )
7 return array[ size - 1 ];
8 else
9 return recursiveMinimum( array, size-1 );
10}
2{
3 if ( size == 1 )
4 return array[0];
5
6 if ( array[ size - 1 ] < recursiveMinimum( array, size-1 ) )
7 return array[ size - 1 ];
8 else
9 return recursiveMinimum( array, size-1 );
10}
4.选择排序
选择排序:从数组中查找最小的值,将其同数组中的第一个元素交换,然后从第二个元素开始查找最小的值同数组第二个元素交换,这样重复一直到只剩最后一个元素为止。
1void selectionSort( int list[], int n, int start)
2{
3 {
4 int i;
5 int p = start;
6 if ( start < n - 1 )
7 {
8 for ( i = start; i < n; i++ )
9 {
10 if ( list[i] < list[p] )
11 p = i;
12 }
13 i = list[ p ];
14 list [ p ] = list[ start ];
15 list[ start ] = i;
16 selectionSort( list , n , start+1 );
17 }
18 }
19}
5.线性查找2{
3 {
4 int i;
5 int p = start;
6 if ( start < n - 1 )
7 {
8 for ( i = start; i < n; i++ )
9 {
10 if ( list[i] < list[p] )
11 p = i;
12 }
13 i = list[ p ];
14 list [ p ] = list[ start ];
15 list[ start ] = i;
16 selectionSort( list , n , start+1 );
17 }
18 }
19}
1int linerSearch(int a[], int key, int size)
2{
3 if ( size > 0 )
4 {
5 if ( a[ size - 1 ] == key )
6 return size - 1; //反方向,返回下标
7 return linerSearch( a, key, size - 1 );
8 }
9
10 return -1; //未找到
11}
2{
3 if ( size > 0 )
4 {
5 if ( a[ size - 1 ] == key )
6 return size - 1; //反方向,返回下标
7 return linerSearch( a, key, size - 1 );
8 }
9
10 return -1; //未找到
11}