伊莉討論區

標題: 請大大ㄅ我把c語言的氣泡排序法改成MIPS語言指令 [打印本頁]

作者: dick10393    時間: 2011-6-6 09:12 PM     標題: 請大大ㄅ我把c語言的氣泡排序法改成MIPS語言指令

本帖最後由 goodbye_mylove 於 2011-6-7 06:20 PM 編輯

開發Bubble sort排序組合語言程式。排序對象為一般整數,(若能擴大至一般浮點數則更佳),程式需能指定排序方向(由小而大排序或由大而小),程式的輸入參數有四,分別是原始數列基底位址、排序後數列基底位址、數列元素個數以及排序方向(值0:由小而大排序,值1:由大而小排序)。測試程式時,讓排序程式執行兩次,分別執行由小而大,以及由大而小之排序各一次,並輸出排序後數列到MARS的Run I/O視窗中。輸入資料以及排序選項值可直接置放於程式之前的資料定義處。測試資料如下:10, 9, 7, 8, 1, 2, 4, 3, 5, 5 繳交內容:1. 全部程式碼檔案(包括呼叫程式、QuickSort程式、輸出資料程式碼)2. 全部程式執行後的Run I/O視窗畫面(可利用PrtScn按鍵擷取),其內為排序後的數列(由小而大,以及由大而小各一組數列)

  1.   /*
  2. [名稱]:ch07_01.cpp
  3. [示範]:傳統氣泡排序法
  4. */
  5. #include <iostream>
  6. #include <iomanip>
  7. using namespace std;
  8. int main()
  9. {
  10. int data[6]={6,5,9,7,2,8}; // 原始資料
  11. cout<<"氣泡排序法:\n原始資料為:";
  12. for (int i=0;i<6;i++)
  13.   cout<<setw(3)<<data[i];
  14. cout<<endl; for (int i=5;i>0;i--)  // 掃瞄次數
  15. {
  16.   for (int j=0;j<i;j++) //比較、交換次數
  17.   {
  18.    if (data[j]>data[j+1]) // 比較相鄰兩數,如第一數較大則交換
  19.    {
  20.     int tmp;
  21.     tmp=data[j];
  22.     data[j]=data[j+1];
  23.     data[j+1]=tmp;
  24.    }
  25.   }
  26.   cout<<"第 "<<6-i<<" 次排序後的結果是:"; //把各次掃描後的結果印出
  27.   for (int j=0;j<6;j++)
  28.    cout<<setw(3)<<data[j];
  29.   cout<<endl;
  30. }
  31. cout<<"排序後結果為:";
  32. for (int i=0;i<6;i++)
  33.   cout<<setw(3)<<data[i];
  34. cout<<endl;
  35. }
複製代碼

作者: dick10393    時間: 2018-6-1 02:45 PM

請各位答答答幫幫忙
請各位答答答幫幫忙
請各位答答答幫幫忙

作者: mdlin    時間: 2018-6-3 05:16 PM

MIPS組合語言,這未免太...... X86組合語言會寫的都剩不多了. 你要不用Compile 成組合語言,然後再來改?




歡迎光臨 伊莉討論區 (http://www56.eyny.com/) Powered by Discuz!