奇偶交换排序
Posted 薛定谔的猫ovo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奇偶交换排序相关的知识,希望对你有一定的参考价值。
题目描述
奇偶交换排序是一种交换排序。它的第一趟对序列中的所有奇数项 i i i扫描,第二趟对序列中的所有偶数项 i i i扫描,若 A [ i ] > A [ i + 1 ] A[i]>A[i+1] A[i]>A[i+1],则交换它们。第三趟对序列中的所有奇数项 i i i扫描,第四趟对序列中的所有偶数项 i i i扫描,……,如此反复,直至整个序列全部排好序为止。写出奇偶交换排序的算法。
实现代码
#include<bits/stdc++.h>
using namespace std;
void Sort(int arr[], int n)
int oddsort = 0;
int evensort = 0;
while(!oddsort || !evensort) //奇偶交换排序
oddsort = 1;
evensort = 1;
for(int i=0; i<n-1; i+=2) //奇排序
if(arr[i]>arr[i+1])
swap(arr[i],arr[i+1]);
oddsort = 0;
for(int i=1; i<n-1; i+=2) //偶排序
if(arr[i]>arr[i+1])
swap(arr[i],arr[i+1]);
evensort = 0;
int main()
int n;
cin>>n;
int arr[n];
for(int i=0; i<n; i++)
cin>>arr[i];
Sort(arr, n);
for(int i=0; i<n; i++)
cout<<arr[i]<<" ";
return 0;
以上是关于奇偶交换排序的主要内容,如果未能解决你的问题,请参考以下文章