zoukankan      html  css  js  c++  java
  • 奇偶排序(OddEven Sort)----(排序算法十一)

    1.算法原理


    2.代码实现


    #include <stdio.h>
    
    //printArray打印出数组
    void printArray(int a[],int size){  
        printf("数组为:[%d] ",a[0]);  
        for (int i=1;i<size;i++)  
        {  
            printf(" %d ",a[i]);  
        }  
        printf("
    ");  
    }
    
    void main()
    {
    	//a[0]监视哨
    	int  a[10] ={0,9,8,7,6,5,4,3,2,1};  
    	int  len=10;
    	bool swapped = true;  
        while (swapped)  
        {  
            swapped = false;  
            for (int i=1; i<len-1; i=i+2)  
            {  
                if (a[i]>a[i+1])  
                {  
    				printf("%d<-->%d ",a[i],a[i+1]);
    				printArray(a,len);
                    a[0]=a[i];
    				a[i]=a[i+1];
    				a[i+1]=a[0];
                    swapped = true;  
                }  
            }  
            for (int j=2; j<len-1; j=j+2)  
            {  
                if (a[j]>a[j+1])  
                { 
    				printf("%d<-->%d ",a[j],a[j+1]);
    				printArray(a,len);
                    a[0]=a[j];
    				a[j]=a[j+1];
    				a[j+1]=a[0];
                    swapped = true;  
                }  
            }  
        }  
    	printArray(a,len);
    }
    
    


    3.结果

    9<-->8 数组为:[0]  9  8  7  6  5  4  3  2  1
    7<-->6 数组为:[9]  8  9  7  6  5  4  3  2  1
    5<-->4 数组为:[7]  8  9  6  7  5  4  3  2  1
    3<-->2 数组为:[5]  8  9  6  7  4  5  3  2  1
    9<-->6 数组为:[3]  8  9  6  7  4  5  2  3  1
    7<-->4 数组为:[9]  8  6  9  7  4  5  2  3  1
    5<-->2 数组为:[7]  8  6  9  4  7  5  2  3  1
    3<-->1 数组为:[5]  8  6  9  4  7  2  5  3  1
    8<-->6 数组为:[3]  8  6  9  4  7  2  5  1  3
    9<-->4 数组为:[8]  6  8  9  4  7  2  5  1  3
    7<-->2 数组为:[9]  6  8  4  9  7  2  5  1  3
    5<-->1 数组为:[7]  6  8  4  9  2  7  5  1  3
    8<-->4 数组为:[5]  6  8  4  9  2  7  1  5  3
    9<-->2 数组为:[8]  6  4  8  9  2  7  1  5  3
    7<-->1 数组为:[9]  6  4  8  2  9  7  1  5  3
    5<-->3 数组为:[7]  6  4  8  2  9  1  7  5  3
    6<-->4 数组为:[5]  6  4  8  2  9  1  7  3  5
    8<-->2 数组为:[6]  4  6  8  2  9  1  7  3  5
    9<-->1 数组为:[8]  4  6  2  8  9  1  7  3  5
    7<-->3 数组为:[9]  4  6  2  8  1  9  7  3  5
    6<-->2 数组为:[7]  4  6  2  8  1  9  3  7  5
    8<-->1 数组为:[6]  4  2  6  8  1  9  3  7  5
    9<-->3 数组为:[8]  4  2  6  1  8  9  3  7  5
    7<-->5 数组为:[9]  4  2  6  1  8  3  9  7  5
    4<-->2 数组为:[7]  4  2  6  1  8  3  9  5  7
    6<-->1 数组为:[4]  2  4  6  1  8  3  9  5  7
    8<-->3 数组为:[6]  2  4  1  6  8  3  9  5  7
    9<-->5 数组为:[8]  2  4  1  6  3  8  9  5  7
    4<-->1 数组为:[9]  2  4  1  6  3  8  5  9  7
    6<-->3 数组为:[4]  2  1  4  6  3  8  5  9  7
    8<-->5 数组为:[6]  2  1  4  3  6  8  5  9  7
    9<-->7 数组为:[8]  2  1  4  3  6  5  8  9  7
    2<-->1 数组为:[9]  2  1  4  3  6  5  8  7  9
    4<-->3 数组为:[2]  1  2  4  3  6  5  8  7  9
    6<-->5 数组为:[4]  1  2  3  4  6  5  8  7  9
    8<-->7 数组为:[6]  1  2  3  4  5  6  8  7  9
    数组为:[8]  1  2  3  4  5  6  7  8  9
    


  • 相关阅读:
    rinex4.0
    基于 Android NDK 的学习之旅目录
    基于设计模式的学习之旅目录
    基于设计模式的学习之旅中介者(附源码)
    基于设计模式的学习之旅观察者模式(附源码)
    基于设计模式的学习之旅责任链(附源码)
    基于设计模式的学习之旅访问者模式(附源码)
    基于设计模式的学习之旅状态模式(附源码)
    基于设计模式的学习之旅命令模式(附源码)
    基于设计模式的学习之旅享元模式(附源码)
  • 原文地址:https://www.cnblogs.com/whzhaochao/p/5023467.html
Copyright © 2011-2022 走看看