問題引入
代碼實現
#include<iostream>
using namespace std;
//函數功能:冒泡排序
void BubbleSort(int*list,int n){
int i=0,j=0;
bool flag=0;
for(i=0;i<n;++i){
flag=0;
for(j=0;j<n-i-1;++j){
if(list[j]>list[j+1]){
flag=1;
int temp=list[j];
list[j]=list[j+1];
list[j+1]=temp;
}
}
if(!flag){
break;
}
}
}
int main(int argc,char**argv){
int weight[8]={4,10,7,11,3,5,14,2};//古董清單
//咱們須要在古董清單每次貪心選擇都選擇最輕的
//則咱們將其進行非遞減排序比較好
//在此爲了寫排序比較方面、使用冒泡排序
BubbleSort(weight,8);
//排序輸出驗證
int i;
cout<<"weight:\n";
for(i=0;i<8;i++){
cout<<"\t"<<weight[i]<<endl;
}
int max=0,sum=0;
cout<<"請你輸入船的限重:";
cin>>max;
//開始進行貪心選擇
cout<<"您能夠帶走重量序列爲:\n";
for(i=0;i<8;i++){
if(sum+weight[i]<=max){
cout<<"\t"<<weight[i]<<endl;
sum+=weight[i];
}else{
break;
}
}
cout<<"帶走的總重量爲:\n";
cout<<"\t"<<sum<<endl;
return 0;
}