C语言实现以及冒泡排序
点击次数:39 次 发布日期:2008-12-01 11:54:25 作者:源代码网
|
#include <stdio.h> #define INIT_NUM 3 int count; void hanoi(int n, char from, char to, char middle) { if (n > 0) { count++; hanoi(n-1, from, middle, to); printf("Move No.%-2d from %c to %c ", n, from, to); hanoi(n-1, middle, to, from); } } int main(int argc, char *argv[]) { int init = INIT_NUM; if (argc==2) init = atoi(argv[1]); printf("A 是起始杆,C 是辅助杆,B 是目的杆。 "); hanoi(init, "A", "C" , "B"); printf(" Count = %d", count); return 0; } 借着这股东风,我再顺便写一下排序的算法实现,我只记得冒泡跟快速排序了,现在先写一个冒泡排序吧: #include <stdio.h> void show (int *p) { int i=0; for (i=0 ;i<8 ;i++ ) { printf("%3d ", p[i]); } printf(" "); } int main(int argc, char *argv[]) { int p[] = {8, 9, 4, 5, 1, 7, 6, 0}; int i = 0; int j = 0; int tmp = 0; for (i=0 ;i<8 ;i++ ) { for (j=0 ;j<7-i ;j++ ) { if (p[j] > p[j+1]) { tmp = p[j]; p[j] = p[j+1]; p[j+1] = tmp; } } printf("第%2d轮排序结束:", i+1); show(p); } return 0; } 源代码网供稿. |
