查看完整版本: 請大大ㄅ我把c語言的氣泡排序法改成MIPS語言指令
頁: [1]

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按鍵擷取),其內為排序後的數列(由小而大,以及由大而小各一組數列)


  /*
[名稱]:ch07_01.cpp
[示範]:傳統氣泡排序法
*/
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int data={6,5,9,7,2,8}; // 原始資料
cout<<"氣泡排序法:\n原始資料為:";
for (int i=0;i<6;i++)
  cout<<setw(3)<<data;
cout<<endl; for (int i=5;i>0;i--)  // 掃瞄次數
{
  for (int j=0;j<i;j++) //比較、交換次數
  {
   if (data>data) // 比較相鄰兩數,如第一數較大則交換
   {
    int tmp;
    tmp=data;
    data=data;
    data=tmp;
   }
  }
  cout<<"第 "<<6-i<<" 次排序後的結果是:"; //把各次掃描後的結果印出
  for (int j=0;j<6;j++)
   cout<<setw(3)<<data;
  cout<<endl;
}
cout<<"排序後結果為:";
for (int i=0;i<6;i++)
  cout<<setw(3)<<data;
cout<<endl;
}
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

dick10393 發表於 2018-6-1 02:45 PM

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

mdlin 發表於 2018-6-3 05:16 PM

MIPS組合語言,這未免太...... X86組合語言會寫的都剩不多了. 你要不用Compile 成組合語言,然後再來改?{:44:}
頁: [1]