c语言
递归
汉诺塔
#include <stdio.h>
#include <stdlib.h>
void hanoi(int n, char x, char y, char z)
{
if( n == 1)
{
printf("%c --> %c\n", x, z);
}
else
{
hanoi(n-1, x, z, y);
printf("%c --> %c\n",x, z);
hanoi(n-1, y, x, z);
}
}
int main()
{
int n;
printf("请输入汉诺塔层数:");
scanf("%d",&n);
hanoi(n, 'X', 'Y', 'Z');
return 0 ;
}
快速排序
#include <stdio.h>
#include <stdlib.h>
void sort(int array[],int left,int right)
{
int i = left;
int j = right;
int temp;
int pivot;
pivot = array[(left + right)/2];
while(i<=j)
{
while(array[i] < pivot)
{
i++;
}
while(array[j] > pivot)
{
j--;
}
if( i <= j )
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
i++;
j--;
}
}
if(left < j)
{
sort(array,left,j);
}
if(i < right)
{
sort(array,i,right);
}
}
int main()
{
int array[] = {73,108,111,118,101,70,105,115,104,67,46,99,111,109};
int i ;
int length;
length = sizeof(array)/sizeof(array[0]);
sort(array,0, length - 1);
for(i = 0 ; i < length ; i++)
{
printf("%d ",array[i]);
}
return 0 ;
}