氣泡排序 Problem 並列排名

2021-10-14 05:32:37 字數 651 閱讀 5579

氣泡排序原理就是:如果有n個數,相鄰的兩個數進行比較,就是1號和2號,2號和3號…n-1號和n號比較,每次比較確定乙個數的位置。也就是第乙個輪迴比較n-1次,第二個就比較n-2次,直到只需要比較兩個數為止。

核心部分就是雙重巢狀迴圈,但是從這可以看出它的時間複雜度是o(n^2),複雜度很高。

下面舉乙個例子,順帶解決輸出數的擁有者的問題;

output

分數相同的,先輸入的先輸出

sample input

5菜鳥1號 90

菜鳥2號 80

菜鳥3號 60

菜鳥4號 90

菜鳥5號 70

sample output

菜鳥1號

菜鳥4號

菜鳥2號

菜鳥5號

菜鳥3號

(這裡就不用呼叫strcpy函式來實現了)直接放**:

#include#includestruct  stu

;int main()}}

scanf("%d",&m);

for(int i=1;i<=n;i++)}}

return 0;

}

允許並列的排名

時間限制 1 sec 記憶體限制 16 mb 在我們參加的各種競賽中,允許並列的排名方式是經常遇到的。例如有四名選手的成績分別為50 80 50 30分,則80分的選手為第一名,50分的兩名選手均為第二名,30分的選手為第四名。請編寫乙個程式,計算乙個選手在這種排名方式之下的名次 分數高的選手排前面...

Oracle並列排名顯示

第一種 dense rank over order by 字段 公升序或降序 as 別名 from 表名 使用別名方便之後過濾條件使用 排名的時候並列算同乙個人,如,1,2,2,3 sql select ename,job,sal,dense rank over order by sal desc ...

MySQL並列排名和順序排名查詢

建立一張叫scores的表,內容如下。因為測試排名,所以就用最簡單的結構。id score199 280387 460580 699獲取分數排名,要求並列排名。如果兩個分數相同,則兩個分數排名 rank 相同。名次之間不應該有 間隔 id score rank199 16991 38722 8035...