當前位置:首頁 » 操作系統 » 數據結構與演算法代碼

數據結構與演算法代碼

發布時間: 2023-06-14 12:02:42

① 數據結構與演算法實驗代碼

#include <cstdio>

int gold[225],medal[225],population[225];
int list[10];
int fir = 0;//用來判斷是否是第一個元素用的
void printresult(int check_number,int n);
int main()
{
int n,m;

scanf("%d%d",&n,&m);
for(int i = 0;i < n;i++)
scanf("%d%d%d",&gold[i],&medal[i],&population[i]);
for(int i = 0;i < m;i++)
{
int check_number;
scanf("%d",&check_number);
printresult(check_number,n);
}
printf("\n");
return 0;
}
void printresult(int check_number,int n)
{
for(int i = 0;i < n;i++)
{
if(gold[i]>gold[check_number])
list[1]++;
}
int result = ++list[1];//這里還要多加一個1,因為數組原來是0
int num = 1;
for(int i = 0;i < n;i++)
{
if(medal[i]>medal[check_number])
list[2]++;
}
list[2]++;
double gold_per = gold[check_number]*1.0/population[check_number];
for(int i = 0;i < n;i++)
{
if((gold[i]*1.0/population[i])>gold_per)
list[3]++;
}
list[3]++;
double medal_per = medal[check_number]*1.0/population[check_number];
for(int i = 0;i < n;i++)
{
if(medal[i]*1.0/population[i]>medal_per)
list[4]++;
}
list[4]++;
for(int i = 1;i < 5;i++)
{
if(list[i]<result)
{
result = list[i];
num = i;
}
}
for(int i = 1;i < 5;i++)
list[i] = 0;//對排名數組清零,因為之後要多次調用
if(!fir)
{
printf("%d:%d",result,num);//首個輸入前面不用空格
fir = 1;
}
else
printf(" %d:%d",result,num);
}
//如果超時的話還可以再優化,不過國家的數量比較少,應該不會
//優化就是把排名是1的話直接輸出,不進行之後運算

② 演算法與數據結構二叉樹的順序存儲代碼

1.應該是按照完全二叉樹存的吧。這樣的話,
2。根節點可以設置為1,(如果設成0的話,以後的所有值-1就可以了)
3,如果一個節點是x它左孩子是2*x,右孩子是2*x+1
4,所有葉子節點是,假設共有K個節點,這樣則最後一個有葉子節點的是k/2,所以葉子節點就是[k/2+1,k];
5,順序輸出就可以了。

③ 數據結構與演算法C語言的一段代碼

struct 不能這樣賦值吧

④ 《數據結構》演算法實現與分析高一凡中的源代碼要怎麼用

這個代碼可以直接用。用的時候必須把include中的文件也保存好。

熱點內容
岩棉板演算法 發布:2025-03-26 19:34:44 瀏覽:872
怎麼讓手機上密碼 發布:2025-03-26 19:13:40 瀏覽:580
linux換網卡 發布:2025-03-26 19:13:28 瀏覽:520
人人網相冊怎麼加密 發布:2025-03-26 19:08:40 瀏覽:643
b站緩存罪惡王冠 發布:2025-03-26 19:04:09 瀏覽:438
微信php介面 發布:2025-03-26 19:04:07 瀏覽:553
python創建excel 發布:2025-03-26 18:57:12 瀏覽:982
橫著上傳 發布:2025-03-26 18:50:15 瀏覽:820
我的世界國際版電腦2b2t伺服器 發布:2025-03-26 18:46:40 瀏覽:531
android中的service 發布:2025-03-26 18:40:06 瀏覽:539