广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4692 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为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.057288 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言