递归实现冒泡排序
2014-11-25 15:18
190 查看
写了个用递归实现冒泡排序的小程序,贴出来哈。程序简单,注释免了。
#include
#include
#include
//递归实现冒泡排序,从小到大
void sort(int *a,int m,int n)
{
int temp;
if(m==0||n==0)
{
return;
}
if(m>0)
{
if(*(a+n-1)>*(a+n))
{
temp = *(a+n-1);
*(a+n-1) = *(a+n);
*(a+n) = temp;
}
sort(a,n-1,m);
}
sort(a,n,m-1);
}
//产生10个100到200 之间的随机数进行测试
void main()
{
time_t tms;
int num[10];
int i;
srand((unsigned int)time(&tms));
for(i=0;i<10;i++)
{
*(num+i) = 100 + rand()%100;
printf("%d\n",*(num+i));
}
sort(num,9,9); //调用递归排序
printf("After sorted\n");
for(i=0;i<10;i++)
{
printf("%d\n",*(num+i));
}
getchar();
}
#include
#include
#include
//递归实现冒泡排序,从小到大
void sort(int *a,int m,int n)
{
int temp;
if(m==0||n==0)
{
return;
}
if(m>0)
{
if(*(a+n-1)>*(a+n))
{
temp = *(a+n-1);
*(a+n-1) = *(a+n);
*(a+n) = temp;
}
sort(a,n-1,m);
}
sort(a,n,m-1);
}
//产生10个100到200 之间的随机数进行测试
void main()
{
time_t tms;
int num[10];
int i;
srand((unsigned int)time(&tms));
for(i=0;i<10;i++)
{
*(num+i) = 100 + rand()%100;
printf("%d\n",*(num+i));
}
sort(num,9,9); //调用递归排序
printf("After sorted\n");
for(i=0;i<10;i++)
{
printf("%d\n",*(num+i));
}
getchar();
}
相关文章推荐
- 【算法】冒泡排序与选择排序的递归实现
- java递归实现冒泡排序
- 递归实现冒泡排序
- 递归实现链表的冒泡排序。
- 算法导论学习日记(7)冒泡排序的递归实现
- 快速排序、冒泡排序、堆排序、shell排序的递归和非递归实现
- 递归实现冒泡排序
- 下标注意【算法】冒泡排序与选择排序的递归实现
- 递归方式实现BubbleSort 冒泡排序
- 实现冒泡排序的和快速排序的递归和非递归版——题集(十七)
- 排序算法杂谈(二) —— 冒泡排序的递归实现
- 常见的五类排序算法图解和实现(交换类:冒泡排序,递归的快速排序)
- [java]冒泡排序的常规、改进以及递归实现
- 经典排序——归并、快排递归与非递归实现与冒泡排序
- 插入排序,选择排序,递归排序和冒泡排序的实现
- 常见的五类排序算法图解和实现(交换类:冒泡排序,递归的快速排序)
- 常见的五类排序算法图解和实现(交换类:冒泡排序,递归的快速排序)
- 用VB函数Dir实现递归搜索目录
- 一个递归实现的取数游戏
- 树形目录的递归实现(一)数据库+jsp+javabean