B WeirdSort 冒泡法排序思維

2021-10-03 12:41:28 字數 924 閱讀 5201

題目:

代表

題意:輸入t組資料,輸入n,m,再輸入n個數a[i],接下來再輸入m個數p[i],p[i]代表可以交換下標為p[i]與p[i+1]的值。

問是否可以經過交換可以將a[i]變成從小到大的有序序列。

思路:當時做沒有思路,其實簡單,思路與冒泡交換的思路一樣,但是只能交換下標符合p[i]與p[i+1]的數。判斷最後是否有序。

ac**

#include

using namespace std;

int a[

110]

;int p[

110]

;int b[

110]

;int

main()

for(

int i=

1; i<=m; i++

)for

(int j=

1; j<=n; j++)}

}sort

(b+1

,b+1

+n);

int flag=1;

for(

int i=

1;i<=n; i++)}

if(flag==1)

cout<<

"yes"

<

else

cout<<

"no"

<

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

// cout

return0;

}

氣泡排序 氣泡排序法

冒泡法是一種簡單的排序方法,它的實現非常簡單。首先對n個專案進行掃瞄,比較相領兩個專案的大小,若發現違背大小次序則進行互換,由此可以使n個專案中的最大者換到最後。然後對剩下的未排序好的專案再進行掃瞄,使它們的最大者換到表的最後。以此類推,直到將表全部排序好為止。這種排序方法,每遍掃瞄以後,都縮短了待...

排序 氣泡排序法

氣泡排序法,是最簡單的一種排序方法,從第乙個位置開始與相鄰位置比較,判斷是否需要交換位子。第一趟從第乙個位置開始,直到最後乙個位置,a n 1 確定最大 以公升序為例子 的數放在最後一位,a n 1 第二趟,繼續從第乙個位置開始,倒數第二位,a n 2 確定倒數第二大的數在倒數第二位a n 2 演算...

氣泡排序法

從小到大排序 int myarray new int 取長度最長的片語 冒泡法 for int j 1 jfor int i 0 i 如果 myarray i myarray i 1 則 myarray i 上浮一位 if myarray i myarray i 1 從大到小排序 int myarr...