【数组特殊排序最小最大次小次大依次类推规律放置】2022-10-27
缘由冒泡排序可以多次使用吗-编程语言-CSDN问答
如题,冒泡排序可以多次使用吗,我前两次用冒泡都实现了,第三次冒泡的时候总是会影响到前面两两位,这个用冒泡法该怎么做呢
有2种方法可用
1遍历找出最大最小按要求放置跳过2个位置继续直到完成
2控制比较方向每次只整理一个数据跳过1个位置
建议使用第一方案
void 找数组最大小下标(int* a, int l, int &db, int &xb, int i)
{//缘由https://ask.csdn.net/questions/7819682/53961272?spm=1001.2014.3001.5501int x = 0, d = 0, j = 0;x = d = a[i]; j += i;while (j < l){if (a[j] > d)d = a[j], db = j; else;if (a[j] < x)x = a[j], xb = j; else;++j;}
}int a[] = { 9, 1, 4, 2, 3, 6, 5, 8, 7 }, x = 0, xb = 0, db = 0, jh = 0;while (x < 9){找数组最大小下标(a, 9, db, xb, x);if (x != xb)jh = a[x] - a[xb], a[x] -= jh, a[xb] += jh;if (x != db && x + 1 != db)jh = a[x + 1] - a[db], a[x + 1] -= jh, a[db] += jh;xb = db = x += 2;}