冒泡排序 Linux下c 实现

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

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

#include <stdio.h>
void bubbleSort(int * pArr, int cnt)
{
        int i,j,tmp;
        for(i=0;i<cnt;i++)
        {
                for(j=i+1;j<cnt;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<cnt;i++)
        {
                printf("input arr[%d] value\n",i);
                scanf("%d", &a[i]);
        }
        bubbleSort(a,cnt);
        printf("bubblesort result:\n");
        for(i=0;i<cnt;i++)
        {
                printf("%d ",a[i]);
        }
        printf("\n");
        return 0;
}

2、编译程序

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

3、执行

[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 

   冒泡排序  效率 O(n²),适用于排序小列表。

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



你可能感兴趣的:(c,算法,linux,工作,gcc,input)