返回列表 發帖

[作業] 氣泡排序法

本帖最後由 周政輝 於 2016-7-30 11:24 編輯

運用剛剛上課所學
將一個數列 a=[1,4,3,2,5]
利用氣泡排序法 將最後結果由小到大排序

結果為: 1,2,3,4,5


可參考網路範例程式碼
http://emn178.pixnet.net/blog/po ... 2%E5%BA%8F%E6%B3%95(bubble-sort)
或是
http://openhome.cc/Gossip/Algori ... nsertionBubble.html

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int tmp = 0;
  7.     int b = 1;
  8.     int a[5]={1,4,3,2,5};
  9.     for(int i=0; i<4; i++)
  10.     {
  11.         for(int j=0; j < 5-i-1; j++)
  12.         {
  13.             if(a[j]>a[j+1])
  14.             {
  15.                 tmp=a[j];
  16.                 a[j]=a[j+1];
  17.                 a[j+1]=tmp;
  18.             }
  19.         }
  20.     }
  21.     for(int c=0; c<5; c++)
  22.     {
  23.         cout<< a[c];
  24.     }
  25.     system("pause");
  26.     return 0;
  27. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int a[5] , tmp;
  7.     for ( int i=0 ; i<5 ; i++ )
  8.     {
  9.         cout<<"請輸入第"<<i+1<<"個數字: ";
  10.         cin>>a[i];
  11.     }
  12.     cout << "您所輸入的數字順序: ";
  13.     for ( int i=0 ; i<5 ; i++ )
  14.     {
  15.         cout << a[i] << " , " ;
  16.     }
  17.         for( int i=0 ; i<5-1 ; i++ )
  18.     {
  19.         for( int j=0 ; j<5-i-1 ; j++ )        
  20.         {
  21.             if( a[j] > a[j+1] )  
  22.             {
  23.                 tmp    = a[j]  ;  
  24.                 a[j]   = a[j+1];  
  25.                 a[j+1] = tmp   ;  
  26.             }
  27.         }
  28.     }
  29.     cout << endl;
  30.     cout << "系統自動排序後的數: " ;
  31.     for ( int i=0 ; i<5 ;i++ )
  32.     {
  33.         cout << a[i] << " , " ;
  34.     }
  35.     cout << endl;
  36.     system("pause");
  37.     return 0;
  38. }
複製代碼

TOP

本帖最後由 蔡庭豪 於 2016-7-30 11:29 編輯
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         int number[5],temp;
  7.         for(int x=0;x<5;x++){
  8.             cout<<"輸入第"<<x+1<<"數"<<endl;
  9.             cin>>number[x];         
  10.         }
  11.         cout<<"排序前"<<endl;
  12.         for(int y=0;y<5;y++){
  13.             cout<<number[y]<<",";         
  14.         }               
  15.         for(int i=0;i<4;i++){
  16.                
  17.             for(int j=0;j<4-i;j++){
  18.                     
  19.                 if(number[j]>number[j+1]){
  20.                      temp=number[j];                        
  21.                      number[j]=number[j+1];
  22.                      number[j+1]=temp;
  23.                 }                          
  24.             }            
  25.         }
  26.         cout<<"排序後"<<endl;
  27.         for(int z=0;z<5;z++){
  28.             cout<<number[z]<<",";         
  29.         }                           
  30.         system("pause");
  31.         return 0;
  32. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int a[5],tmp;
  7.     for(int i=0;i<5;i++)
  8.     {
  9.         cout<<"請輸入第"<<i+1<<"個數:";
  10.         cin>>a[i];
  11.     }
  12.     cout<<"排序前:";
  13.     for(int i=0;i<5;i++)
  14.     {
  15.         cout<<a[i]<<" ";
  16.     }
  17.     for(int i=0;i<5-1;i++)
  18.     {
  19.         for(int j=0;j<5-i-1;j++)        
  20.         {
  21.             if(a[j]>a[j+1])        
  22.             {
  23.                 tmp=a[j];
  24.                 a[j]=a[j+1];
  25.                 a[j+1]=tmp;
  26.             }
  27.         }
  28.     }
  29.     cout<<endl;
  30.     cout<<"排序後:";
  31.     for(int i=0;i<5;i++)
  32.     {
  33.         cout<<a[i]<<" ";
  34.     }
  35.     cout<<endl;
  36.     system("pause");
  37.     return 0;
  38. }
複製代碼

TOP

返回列表