廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4663 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
jasonh920 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x3 鮮花 x50
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
文章表情[C/C++] [求助]學校的作業寫不出來,關於泡沫排序法和二分搜尋法的程式
請問各位大大幫一下小弟.
這次作業想破了頭,就是不知道如何下手.
眼睜睜看著交作業的時間又要到了.
所以想請各位大大幫忙小弟,要不然真不知道
這個程式要如何作壓....
麻煩各位大大們了....


一. 自訂一個數列(陣列)使用泡沫排序法進行排序動作
二. 將第一點排序完成的數列使用二分搜尋法進行搜尋動作
三. 一、二點功能需加入狀態追蹤
四. 將一、二點寫成函式的形態
五 .執行範例如 圖二、三、四、五

函式格式與說明

void print(int array[] , int length); //自訂列印陣列函數
void bubble_sort(int bubble[] , int length , int control); //泡沫排序
int binary_search(int binary[] ,int length , int search , int low_limit ,int up_limit , int control); //二分搜尋法

參數說明

int array[] 欲列印陣列 ; int lenght 欲列印陣列長度

int bubble[] 欲排序陣列 ; int lenght 欲排序陣列長度 ; int control 追蹤控制變數

int binary[] 欲搜尋陣列 ; int lenght 欲搜尋陣列長度 ; int search 欲搜尋的數值 ;
int up_limit 二分法搜尋初始上限 ; int low_limit 二分法搜尋初始下限 ; int control 追蹤控制變數

#include <cstdlib>
#include <iostre ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容




獻花 x0 回到頂端 [樓 主] From:局域網對方和您在同一內部網 | Posted:2005-03-25 13:44 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

請問一下你的a跟b還有c跟d...選項的normal跟detail差別在哪裡....妳的題目不夠完整我無法作答= ="....
不然bubble sort和binary search的演算法都不算難.....基本你照書來改就好了.....


沒東西可以抓
獻花 x0 回到頂端 [1 樓] From:美國 | Posted:2005-03-25 20:09 |
jasonh920 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x3 鮮花 x50
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用唐老鴨於2005-03-25 20:09發表的 :
請問一下你的a跟b還有c跟d...選項的normal跟detail差別在哪裡....妳的題目不夠完整我無法作答= ="....
不然bubble sort和binary search的演算法都不算難.....基本你照書來改就好了.....


"//程式碼"的部份是老師要我們填進自己程式的部份.
或者是"完成的方式不限制 (除了互抄) 不一定要用我的
主程式,但函式定義一定要一樣(函數名稱)"就可以了.

但我卻是想了好幾天都猜不透要如何去解.
麻煩大大您了...
其實我是覺得真的很難啦!!因為我邏輯觀念實
在是不怎麼好...
而且現在又是隨修,根本就沒有同學可以討論.
老師又揚言要當至少二十個以上...
真是快哭出來了..... 表情 表情


獻花 x0 回到頂端 [2 樓] From:台灣中華電信 | Posted:2005-03-26 01:15 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用jasonh920於2005-03-25 13:44發表的 [求助]學校的作業寫不出來,關於泡沫排序法和二分搜尋法的程式:
請問各位大大幫一下小弟.
這次作業想破了頭,就是不知道如何下手.
眼睜睜看著交作業的時間又要到了.
所以想請各位大大幫忙小弟,要不然真不知道
這個程式要如何作壓....
.......

看來你不是很聽的懂我的意思.....
首先....
我的第一個問題是 int value[size]={57,19,33,26,6};你是要用給好的這五個數來排就好....還是要由使用者來輸入一些數字....之後再將這些數做排列....
第二....你宣告int array[size];是要拿來做什麼用的.....
第三....你的題目"三. 一、二點功能需加入狀態追蹤"你所要做的是什麼.....不是很懂她的意思....是說要將每一次的排序(譬如排了十次才排好)...分別列他的進度做到哪嗎.....
最後一點.....照你的程式....如果你的輸入是A....就做bubble_sort(normal)...如果是B....就做bubble_sort(detail)....我不知道他的差別在哪....因為我就只知道一種bubble sort的演算法....不知道bubble sort還有分你要用normal的排列....還是detail的排列....不然你的程式裡....你的"control"我可能用不到....所以選A跟選B都是一樣的....當然binary_serach也是同樣的問題....這才是我想問你的.....


[ 此文章被唐老鴨在2005-03-26 03:56重新編輯 ]


沒東西可以抓
獻花 x0 回到頂端 [3 樓] From:美國 | Posted:2005-03-26 03:51 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用jasonh920於2005-03-26 01:15發表的 :
"//程式碼"的部份是老師要我們填進自己程式的部份.
或者是"完成的方式不限制 (除了互抄) 不一定要用我的
主程式,但函式定義一定要一樣(函數名稱)"就可以了.

但我卻是想了好幾天都猜不透要如何去解.
麻煩大大您了...
其實我是覺得真的很難啦!!因為我邏輯觀念實
在是不怎麼好...
而且現在又是隨修,根本就沒有同學可以討論.
老師又揚言要當至少二十個以上...
真是快哭出來了.....

如果說上面的主程式是你寫的....
那我會改掉大部分的部份....
用我自己的想法來寫....
但如果那是老師的版本....
那上面那篇留言....
有蠻多問題要問你的....
所以你先告知你真正的題目要求....
我在來給你內容.....
基本上那兩個函式的部份不會超過二十行.....
不過作業還是要自己寫比較好....
有學到才重要 表情 .....


沒東西可以抓
獻花 x0 回到頂端 [4 樓] From:美國 | Posted:2005-03-26 06:15 |
rockster
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x7
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

看來是我攪錯了@@"


[ 此文章被rockster在2005-03-26 18:30重新編輯 ]


獻花 x0 回到頂端 [5 樓] From:英國 | Posted:2005-03-26 08:37 |
jasonh920 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x3 鮮花 x50
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用唐老鴨於2005-03-26 03:51發表的 :


看來你不是很聽的懂我的意思.....
首先....
我的第一個問題是 int value[size]={57,19,33,26,6};你是要用給好的這五個數來排就好....還是要由使用者來輸入一些數字....之後再將這些數做排列....
.......

其實我也是知道功課要自己寫,但這次我真的想不透怎麼去寫.
才會上來求助大大們的...
助教的意思是說.利用那五個數字來做排列就可以了.但要我們
可以輸入,a,b,c,d來做為選擇性的排列方式.
或許我表達的能力比較差.
所以我把我們助教的範例貼上去好了.

http://async.eecs.stut.edu.tw/...hw/index.htm
第五周:作業五:泡沫排序 與 二分搜尋

唐老鴨大大麻煩您了...還有各位大大也是....


獻花 x0 回到頂端 [6 樓] From:台灣中華電信 | Posted:2005-03-26 15:40 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

我照妳們老師的要求寫好了....只有一點點改變而已....剩下完全是照妳們老師的圖做的.....
這是程式碼......
複製程式
#include <cstdlib>
#include <iostream>

using namespace std;

void print(int array[] , int length);//自訂列印陣列函數
void bubble_sort(int bubble[] ,int length , int control); //泡沫排序
int binary_search(int binary[] , int length , int search , int low_limit ,int up_limit , int control);//二分搜尋法

int main(int argc, char *argv[])
{
   const int size = 5;//自訂長度
   int value[size]={57,19,33,26,6}; //自訂數列
   //int array[size]; //我沒用到這個
   int i=0 , j=0;
   int find_value=0;
   int select=0;
   char determine;
  
   printf("Select mode : a.bubble_sort(normal) B.bubble_sort(detail) C.Binary_search(normal) D.Binary_search(detail)\n");
   scanf("%c",&determine);
   
   if(determine == 'A' || determine == 'a')
   {
          select= 0;
          printf("array value : ");
          print (value,size);
          bubble_sort(value,size,select);
   }
  
   else if(determine== 'B' || determine == 'b')
   {
          select=1;
          printf("array value : ");
          print(value,size);
          bubble_sort(value,size,select);
   }
  
   else if(determine == 'C' || determine == 'c')
   {
          select=0;
          printf("array value : ");
          print(value,size);
          printf("enter search value :\n");
          scanf("%d",&find_value);
          bubble_sort(value,size,select);
          binary_search(value ,size ,find_value ,0 ,size-1 ,select);  
   }

   else if (determine == 'D' || determine == 'd')
   {
          select=1;
          printf("array value : ");
          print(value,size);
          printf("enter search value :\n");
          scanf("%d",&find_value);
          bubble_sort(value,size,select);
          binary_search(value ,size , find_value ,0 ,size-1 ,select);
   }          
  
   system("PAUSE");
   return 0;
}

void bubble_sort(int bubble[] , int length , int control)
{
   int i,j;
   int temp;

   for(i=0; i<length-1; i++)
   {
      for(j=i+1; j < length; j++)
         {
            if(control==1)
               {
                  printf("%3d%3d\n",i,j);
                     printf("%3d%3d\n",bubble[i],bubble[j]);
                     printf("array value : ");
               print(bubble,length);
               }

               if(bubble[i]>bubble[j])
               {
                  if(control==1)
                     {
                        printf("%3d%3d exchange\n",bubble[i],bubble[j]);
                     }
                     
                     temp=bubble[j];
                     bubble[j]=bubble[i];
                     bubble[i]=temp;
                     
                     if(control==1)
                     {
                       printf("array value : ");
                       print(bubble,length);
                     }
               }
         }
   }

   if(control==0)
   {
         printf("array value : ");
         print(bubble,length);
   }
 
}

int binary_search(int binary[] ,int length ,int search , int low_limit , int up_limit , int control)
{
   int middle;
   int find=0;

   while(low_limit<=up_limit)
   {
      middle=(low_limit+up_limit)/2;
      
         if(control==1)
         {
            printf("\nup_limit = %d\n",binary[up_limit]);
               printf("low_limit = %d\n",binary[low_limit]);
               printf("midpoint = %d\n",binary[middle]);
               printf("search = %d\n",search);
               printf("\n");
         }

         if(search>binary[middle])
            low_limit=middle+1;
         else if(search<binary[middle])
            up_limit=middle-1;
         else if(search==binary[middle])
         {  
            find=1;
               break;            
         }
   }
   
   if(find==1)
      printf("Find %d\n",search);
   else
      printf("No Find %d\n",search);
   
   return find;
}

void print(int array[] , int length)
{
   int i=0;
  
   for(i=0 ; i<length ; i++)
   {
      printf("%3d",array[i]);
   }
   printf("\n");
} 


此文章被評分,最近評分記錄
財富:20 (by panasonic732)


沒東西可以抓
獻花 x0 回到頂端 [7 樓] From:美國 | Posted:2005-03-26 18:55 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

我不知道為什麼我沒辦法傳上面的檔案給你....
妳要SOURCE CODE的話給我你的E_MAIL....
我在寄給你.....

還有不要用上面的去COMPILER....我剛發現有錯誤了...傳上去的code好像怪怪的....[ i ]變成 <i> 了....我不知道什麼原因....你最好跟我拿原檔案來看.....
表情


[ 此文章被唐老鴨在2005-03-26 19:04重新編輯 ]


沒東西可以抓
獻花 x0 回到頂端 [8 樓] From:美國 | Posted:2005-03-26 18:56 |
jasonh920 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x3 鮮花 x50
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

唐老鴨大大謝謝你唷....
我剛剛已經交出去了.
只是我還在研究您的程式.
所以才遲遲未回覆...
不好意思唷!!


獻花 x0 回到頂端 [9 樓] From:台灣中華電信 | Posted:2005-03-26 19:12 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.062015 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言