本题是否可以进行非相邻的调换,即是否可以通过类似如下优化后的选择排序求解答案:
for (int i = 1; i <= n; i++) { int maxi = i; for (int j = i; j <= n; j++) { if (a[maxi] < a[j]) { maxi = j; } } printf("%d %d", i, maxi); swap(a[maxi], a[j]); }
我只是问一下可不可以这样做,冒泡还是知道的。