设为首页 加入收藏

TOP

冒泡排序 Linux下c 实现
2014-11-24 00:43:33 来源: 作者: 【 】 浏览:73
Tags:冒泡 排序 Linux 实现

最近有个想法:工作之余,用c/c++在linux下把常用的算法重写一遍。当然,对算法的认识,我仅限于皮毛,我不可能超越那些前辈先知,但我仍想,用自己的方式演示一遍,只当自娱自乐吧!秉承一贯的原则,不讲大道理,只演示关键代码demo,开始算法之旅的第一个算法-----冒泡排序。

1、编辑文件BubbleSort.c,内如如下:


[cpp] #include
void bubbleSort(int * pArr, int cnt)
{
int i,j,tmp;
for(i=0;i {
for(j=i+1;j {
if(*(pArr+i)>*(pArr+j))
{
tmp=*(pArr+i);
*(pArr+i)=*(pArr+j);
*(pArr+j)=tmp;
}
}
}
}


int main(void)
{
int cnt;
printf("input array length:\n");
scanf("%d",&cnt);
if(cnt<1)
{
printf("array length must be larger 0 \n");
return 1;
}
else
{
printf("array length is %d \n",cnt);
}
int a[cnt];
int i;
for(i=0;i {
printf("input arr[%d] value\n",i);
scanf("%d", &a[i]);
}
bubbleSort(a,cnt);
printf("bubblesort result:\n");
for(i=0;i {
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
#include
void bubbleSort(int * pArr, int cnt)
{
int i,j,tmp;
for(i=0;i {
for(j=i+1;j {
if(*(pArr+i)>*(pArr+j))
{
tmp=*(pArr+i);
*(pArr+i)=*(pArr+j);
*(pArr+j)=tmp;
}
}
}
}


int main(void)
{
int cnt;
printf("input array length:\n");
scanf("%d",&cnt);
if(cnt<1)
{
printf("array length must be larger 0 \n");
return 1;
}
else
{
printf("array length is %d \n",cnt);
}
int a[cnt];
int i;
for(i=0;i {
printf("input arr[%d] value\n",i);
scanf("%d", &a[i]);
}
bubbleSort(a,cnt);
printf("bubblesort result:\n");
for(i=0;i {
printf("%d ",a[i]);
}
printf("\n");
return 0;
}

2、编译程序


[plain] [root@localhost gcc]# gcc -o BubbleSort BubbleSort.c
[root@localhost gcc]# gcc -o BubbleSort BubbleSort.c

3、执行

[plain] [root@localhost gcc]# ./BubbleSort
input array length:
3
array length is 3
input arr[0] value
2
input arr[1] value
1
input arr[2] value
4
bubblesort result:
1 2 4
[root@localhost gcc]# ./BubbleSort
input array length:
3
array length is 3
input arr[0] value
2
input arr[1] value
1
input arr[2] value
4
bubblesort result:
1 2 4

呵呵,用自己的手,亲自再演示一遍,感觉还是不错的!先这样吧,以后不断补充完善这篇文章。希望,自己能坚持下去。

摘自 心灵净土
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C/C++启动函数 下一篇判断任意数字是否是回文数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: