從氣泡排序說起

2021-07-12 01:03:31 字數 926 閱讀 2961

眾所周知,氣泡排序是眾多種排序中最簡單的幾種之一。這種排序方式是通過掃瞄陣列多次,不斷交換位置錯誤的相鄰的兩個元素來實現的。對陣列的掃瞄在沒有可以元素可以交換的情況下即會終止。

zhaoweijie12作為一名學霸,他已經學會了氣泡排序,如果他得到乙個1到n的某個排列,他可以輕鬆的在o(n^2)的複雜度內算出對該排列進行氣泡排序需要進行多少次交換。然而zhaoweijie12不止是一名學霸,他還是即將擁有雕塑的(男)人,作為未來的戰鬥霸,他還在思考是否存在某個1到n的排列,使得針對該排列進行的氣泡排序中的交換次數和之前的排列在氣泡排序中必須的交換次數是相同的。當然,他清醒的認知到這個排列不一定唯一,但是基於對第一的渴望,他希望得到那個字典序最小的排列。

zhaoweijie12不知道這個問題的答案,請幫他寫個程式解決

輸入的第一行只有乙個數字t(t<=30),表示共有t組測試資料

對於每組測試資料,第一行只有乙個數字n(2<=n<=2000),第二行包括了1到n的某個排列,代表zhaoweijie12得到的原排列

對於每組資料,你需要輸出兩行。

第一行輸出對原排列進行氣泡排序需要的交換次數

第二行應包括乙個1到n的排列,表示zhaoweijie12需要的那個排列2

3 2 1 3 4

3 1 2 41

1 3 2 2

1 3 4 2

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

void f(int k,int n,int s,int a,int b)

for(int i=0;ia[j])

f(k,n,m,a,b);

cout<

從辭職說起

20出頭的人是熱血青年,有夢想的人自然也是滿懷激情。願意呆在乙個地方是因為那個地方能讓我們憧景,離開乙個地方,自然也是因為那個地方我們再也沒有繼續呆下來的熱情。打 辭職了以後,不知是從哪來的一股輕鬆的感覺。當時,是由於 醫學影象 之於我是乙個非常敏感的詞眼,還有是創業的一種意念,我充滿激情地走進了公...

從語句 char p test 說起

從語句 char p test 說起 陳皓 我相信,使用 c c 多年的人對下面這個字串賦值語句都不會陌生吧。char p test 同時,我也相信,各位在使用這種語句後吃過很多苦頭也不少吧?只要你想利用指標 p來改變字串的內容,你的程式都會得到乙個讓你顏面盡失乙個記憶體非法操作。比如,下面的這些語...

從語句 char p test 說起

從語句 char p test 說起 我相信,使用 c c 多年的人對下面這個字串賦值語句都不會陌生吧。char p test 同時,我也相信,各位在使用這種語句後吃過很多苦頭也不少吧?只要你想利用指標 p來改變字串的內容,你的程式都會得到乙個讓你顏面盡失乙個記憶體非法操作。比如,下面的這些語句 p...