今天練習Train Swapping,讓我更熟悉排序演算法以及應用方式。題目要求我們計算將一列火車的車廂重新排列成遞增順序所需的最少相鄰交換次數。最直接的做法就是使用泡沫排序(Bubble Sort),因為泡沫排序的過程本身就是不斷比較相鄰元素,若順序錯誤就交換,最後自然就可以得到排序後的結果。而題目所要求的交換次數,剛好就是泡沫排序過程中交換的次數。
透過這題,我更加理解了泡沫排序的細節,例如外層迴圈控制的趟數,內層迴圈比較相鄰的元素,每交換一次就累計計數器。實作過程中我也發現,要正確讀取多組測資,必須仔細設計輸入輸出格式,確保每組結果都正確印出。
整體而言,這題雖然難度不高,但非常適合用來熟悉基本排序概念、巢狀迴圈與條件判斷的搭配。寫完之後,我明白為什麼它可以精準計算最少相鄰交換次數。這題讓我再次體會到演算法不只是理論,實作時才能真正理解其中的邏輯。