1
void stringReverse( char array[] )
2
{
3
if ( array[0] == '\0' )
4
return;
5
stringReverse( array + 1 );
6
printf( "%c", array[0] );
7
}

2

3

4

5

6

7

2.输出数组
1
void printArray( int array[], int size )
2
{
3
if( size == 0 )
4
return;
5
printf( "%d ", array[0] );
6
printArray( ++array, --size );
7
}

2

3

4

5

6

7

3.查找数组中的最小值
1
int 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

4

5

6

7

8

9

10

4.选择排序
选择排序:从数组中查找最小的值,将其同数组中的第一个元素交换,然后从第二个元素开始查找最小的值同数组第二个元素交换,这样重复一直到只剩最后一个元素为止。
1
void 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

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

1
int 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

4

5

6

7

8

9

10

11
