標題:
排序 (二)
[打印本頁]
作者:
鄭繼威
時間:
2023-2-1 02:29
標題:
排序 (二)
本帖最後由 鄭繼威 於 2023-2-8 20:36 編輯
產生10個範圍介於1~20之
不重複
隨機亂數, 並利用
選擇排序法
將它們
由小而大
排列出來.
跟
排序 (一)
一樣,只是陣列的值不是一開始給定而是
產生出亂數再丟進陣列裡
至於怎麼產生?又要不重複?可以複習一下之前上的
產生介於指定範圍內的隨機亂數 (六)-不重複
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
srand(time(NULL));
int tmp;
int n[10]; //宣告長度為10的陣列
//產生10個範圍介於1~20之不重複隨機亂數放進n陣列裡
for(int i=0; i<=9; i++)
{
//n[i]=亂數
//1~20->0~19->rand()%20->rand()%20+1
n[i]=rand()%20+1; //1~20
//檢查
for(int j=0; j<=i-1; j++)
{
//如果跟前面一樣就退一步
if(n[i]==n[j])
{
i--;
break;
}
}
}
cout<<"排序前: ";
for(int i=0; i<10; i++)
{
cout<<n[i]<<" ";
}
cout<<endl;
//開始排序
for(int i=0; i<9; i++)
{
for(int j=i+1; j<10; j++)
{
//倆倆(i,j)比較
//右邊小於左邊就交換->換到最後最左邊會最小
if(n[j]<n[i])
{
//兩數交換
tmp=n[j];
n[j]=n[i];
n[i]=tmp;
}
}
}
cout<<"排序後: ";
for(int i=0; i<10; i++)
{
cout<<n[i]<<" ";
}
cout<<endl;
system("pause");
return 0;
}
複製代碼
作者:
連翊恩
時間:
2023-2-8 20:38
此帖僅作者可見
作者:
林劭澧
時間:
2023-2-8 20:46
此帖僅作者可見
作者:
李彣
時間:
2023-2-8 20:48
此帖僅作者可見
作者:
林劭杰
時間:
2023-2-8 20:56
此帖僅作者可見
作者:
黃裕恩
時間:
2023-2-11 22:03
此帖僅作者可見
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2