经典排序算法 – 奇偶排序Odd-even sort
来源:互联网 发布:网络陶渊明是什么意思 编辑:程序博客网 时间:2024/05/29 17:44
基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序
待排数组[6 2 4 1 5 9]
第一次比较奇数列,奇数列与它的邻居偶数列比较,如6和2比,4和1比,5和9比
[6 2 4 1 5 9]
交换后变成
[2 6 1 4 5 9]
第二次比较偶数列,即6和1比,4和5比
[2 6 1 4 5 9]
交换后变成
[2 1 6 4 5 9]
第三趟又是奇数列,选择的是2、6、5分别与它们的邻居列比较
[2 1 6 4 5 9]
交换后
[1 2 4 6 5 9]
第四趟偶数列
[1 2 4 6 5 9]
一次交换
[1 2 4 5 6 9]
-
-
- #include <stdio.h>
- #include <stdlib.h>
-
- int main(int argc,char *argv[])
- {
- int array[6]={6,2,4,1,5,9};
- int flag=1,temp,sign;
-
-
- while(flag!=0)
- {
- flag=0;
-
-
- for(sign=0;sign<6;sign+=2)
- {
- if(array[sign]>array[sign+1])
- {
- temp=array[sign];
- array[sign]=array[sign+1];
- array[sign+1]=temp;
- flag=1;
- }
- }
-
-
- for(sign=1;sign<6;sign+=2)
- {
- if(array[sign]>array[sign+1])
- {
- temp=array[sign];
- array[sign]=array[sign+1];
- array[sign+1]=temp;
- flag=1;
- }
- }
-
- }
-
-
- for(sign=0;sign<6;sign++)
- {
- printf("%d",array[sign]);
- }
-
- return 0;
- }