標題:
[作業] 排序 (一)
[打印本頁]
作者:
tonyh
時間:
2015-9-19 11:14
標題:
[作業] 排序 (一)
本帖最後由 tonyh 於 2016-1-15 18:14 編輯
利用
選擇排序法
, 將任意6個整數, 由小而大排列出來.
[attach]1404[/attach]
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int n[6]={12,57,-6,-32,0,23};
int tmp;
cout<<"排序前: ";
for(int i=0; i<6; i++)
cout<<n[i]<<" ";
cout<<endl;
for(int i=0; i<5; i++)
{
for(int j=i+1; j<6; j++)
{
if(n[j]<n[i])
{
tmp=n[j];
n[j]=n[i];
n[i]=tmp;
}
}
}
cout<<"排序後: ";
for(int i=0; i<6; i++)
cout<<n[i]<<" ";
cout<<endl;
system("pause");
return 0;
}
複製代碼
作者:
李知易
時間:
2015-9-19 12:11
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int name[6] = {12,57,-6,-32,0,23};
srand(time(NULL));
system("cls");
cout<<"前";
for(int i=0;i<6;i++)
cout<<name[i]<<" ";
for(int i=0; i<5; i++)
{
for( int j=i+1;j<6;j++)
{
if(name[j]<name[i])
{
int t = name[j];
name[j] = name[i];
name[i] = t;
}
}
}
cout<<"後";
for(int i=0;i<6;i++)
cout<<name[i]<<" ";
cout<<endl;
system("pause");
return 0;
}
複製代碼
作者:
洪振庭
時間:
2015-9-19 21:02
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int n[6]={12,57,-6,-32,0,23};
int tm;
cout<<"排序前: ";
for(int i=0; i<6; i++)
cout<<n[i]<<" ";
cout<<endl;
for(int i=0; i<5; i++)
{
for(int j=i+1; j<6; j++)
{
if(n[j]<n[i])
{
tm=n[j];
n[j]=n[i];
n[i]=tm;
}
}
}
cout<<"排序後: ";
for(int i=0; i<6; i++)
cout<<n[i]<<" ";
cout<<endl;
system("pause");
return 0;
}
複製代碼
作者:
梁和雋
時間:
2015-9-22 21:12
本帖最後由 梁和雋 於 2015-9-26 13:29 編輯
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
cout<<"亂數排列器"<<endl;
bake:
int g,p;
cout<<"請輸入每次要產生的變數量"<<endl;
cin>>g;
int r[g];
cout<<"要產生幾組變數"<<endl;
cin>>p;
srand(time(NULL));
for(int q=1;q<=p;q++)
{
re:
for(int i=0; i<g; i++)
{
r[i]=rand()%100-50;
for(int j=0; j<i; j++)
{
if(r[j]==r[i])
{
i--;
break;
}
}
}
int a;
cout<<"排序前: ";
for(int i=0; i<g; i++)
cout<<r[i]<<" ";
cout<<endl;
for(int i=0; i<g-1; i++)
{
for(int j=i+1; j<g; j++)
{
if(r[j]<r[i])
{
a=r[j];
r[j]=r[i];
r[i]=a;
}
}
}
cout<<"排序後: ";
for(int i=0; i<g; i++)
cout<<r[i]<<" ";
cout<<endl<<endl;
}
system("pause");
goto bake;
return 0;
}
複製代碼
作者:
梁和雋
時間:
2015-9-22 21:41
本帖最後由 梁和雋 於 2015-9-23 21:09 編輯
26 -50 46 -41 16 產生變數
-50<26 判斷小於或大於
a=-50 r[j]=26 r[i]=-50 使項交換
-50 26 46 -41 16 結果
46>-50 判斷小於或大於
-41>-50 判斷小於或大於
16>-50 判斷小於或大於
46>26 判斷小於或大於
-41<26 判斷小於或大於
a=26 r[j]=-41 r[i]=26 使項交換
-50 -41 46 26 16 結果
16>-41 判斷小於或大於
26<46 判斷小於或大於
a=26 r[j]=46 r[i]=26 使項交換
-50 -41 26 46 16 結果
16<26 判斷小於或大於
a=16 r[j]=26 r[i]=16 使項交換
-50 -41 16 46 26 結果
26<46 判斷小於或大於
a=26 r[j]=46 r[i]=26 使項交換
-50 -41 16 26 46 完成
複製代碼
這是手動排的,當筆記用
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
cout<<"亂數排列器"<<endl;
int g,p;
cout<<"每次要產生幾個變數"<<endl;
cin>>g;
int r[g];
cout<<"要產生幾組變數"<<endl;
cin>>p;
srand(time(NULL));
for(int q=1;q<=p;q++)
{
re:
for(int i=0; i<g; i++)
{
r[i]=rand()%100-50;
for(int j=0; j<i; j++)
{
if(r[j]==r[i])
{
i--;
break;
}
}
}
int a;
cout<<"排序前: ";
for(int i=0; i<g; i++)
cout<<r[i]<<" ";
cout<<endl;
for(int i=0; i<g-1; i++)
{
for(int j=i+1; j<g; j++)
{
if(r[j]<r[i])
{
a=r[j];
r[j]=r[i];
r[i]=a;
for(int i=0; i<g; i++)
cout<<r[i]<<" ";
}
cout<<" ";
}
cout<<"移動第"<<i+1<<"項"<<endl;
}
cout<<"排序後: ";
for(int i=0; i<g; i++)
cout<<r[i]<<" ";
cout<<endl<<endl;
}
system("pause");
return 0;
}
複製代碼
這是電腦排出來的
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2