yuanfensky_1 2013-12-21 08:49
浏览 842

请大神们帮帮忙,程序中折半算法怎么不可以输入,直接跳到最后了

#include "stdafx.h"
#include
#define MIX_SIZE 20
using namespace std;

typedef struct _Data
{
int *elem;
int lengh;
}Data;

void Creat(Data &data)
{
data.elem=(int *)malloc(MIX_SIZE*sizeof(int));
data.lengh=0;
return;
}

int IputData(Data &data)
{

for(int i=0;cin>>data.elem[i]&&i<20;i++)
{  
    data.lengh++;
    if(data.elem[i] == '*')
        break;      
}
return 0;

}

void MaoPaoPaixu(Data &data)
{
int max;
for(int i=0;i {
for(int j=0;j {
if(data.elem[j]>data.elem[j+1])
{
max=data.elem[j];
data.elem[j]=data.elem[j+1];
data.elem[j+1]=max;
}

}
}

for(int k=0;k<data.lengh;k++)
cout<<data.elem[k]<<" ";
return;
}

void TeacherMaoPao(Data &data)
{
int i=0,temp;
int exchange=1;

while(i<data.lengh&&exchange)
{
    for(int j=0;j<data.lengh-i;j++)
    {
        if(data.elem[j]>data.elem[j+1])
        {
            temp=data.elem[j];
            data.elem[j]=data.elem[j+1];
            data.elem[j+1]=temp;
            exchange=1;
        }    
        i++;
    }
}
for(int k=0;k<data.lengh;k++)
    cout<<data.elem[k]<<"  ";

}

void Select_Sort(Data &data)
{
int i,j,k,temp;
for(i=0;i {
k=i;
for(j=i+1;j {
if(data.elem[k] > data.elem[j])
k=j;
}
if(k!=i) //如果没有k 实现,则不用执行
{
temp = data.elem[k];
data.elem[k]=data.elem[i];
data.elem[i]=temp;
}
}
for(i=0; i<data.lengh;i++)
{
cout << data.elem[i] <<" ";
}
}

int Search(Data &data)
{
int e;
cout<<"请输入要查找的数"< cin>>e;

int low=0,high=data.lengh-1;
while(low<=high)
{
    int mid=(low+high)/2;
    if(e==mid)
    {   
        cout<<"该数在此列数内位置是data.elem["<<mid<<"]"<<endl;
        return 0;
    }
    else 
    {   
        if(e<data.elem[mid])
             high=mid-1;
        else
            low=mid+1;      
    }
}
if(low>high)
{
    cout<<"没有您要查该数列找的数"<<endl;
    return 0;
}
return 0;

}

int main(int argc, _TCHAR* argv[])
{
Data data;

Creat(data);

IputData(data);

cout<<"冒泡排序1"<<endl;

MaoPaoPaixu(data);
cout<<endl;

cout<<"冒泡排序2"<<endl;
TeacherMaoPao(data);
cout<<endl;

cout<<"选择排序"<<endl;
Select_Sort(data);
cout<<endl;

cout<<"查找"<<endl;
Search(data);
return 0;

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 运筹学排序问题中的在线排序
    • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
    • ¥30 求一段fortran代码用IVF编译运行的结果
    • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
    • ¥15 lammps拉伸应力应变曲线分析
    • ¥15 C++ 头文件/宏冲突问题解决
    • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
    • ¥50 安卓adb backup备份子用户应用数据失败
    • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
    • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题