程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 冒泡排序 Linux下c 實現

冒泡排序 Linux下c 實現

編輯:關於C語言

最近有個想法:工作之余,用c/c++在linux下把常用的算法重寫一遍。當然,對算法的認識,我僅限於皮毛,我不可能超越那些前輩先知,但我仍想,用自己的方式演示一遍,只當自娛自樂吧!秉承一貫的原則,不講大道理,只演示關鍵代碼demo,開始算法之旅的第一個算法-----冒泡排序。

1、編輯文件BubbleSort.c,內如如下:


[cpp] #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; 

#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、編譯程序


[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: 

array length is 3  
input arr[0] value 

input arr[1] value 

input arr[2] value 

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 

 

呵呵,用自己的手,親自再演示一遍,感覺還是不錯的!先這樣吧,以後不斷補充完善這篇文章。希望,自己能堅持下去。

 

摘自 心靈淨土

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved