冒泡排序的升级版--鸡尾酒排序

鸡尾酒排序

(作一个自己学习的记录)

作为冒泡排序的升级,鸡尾酒排序的思路是首先从开始向末尾循环找出一个最大数,将它放在末尾,

然后再从末尾向开始循环找出一个最小数将它放在开头。当指向开始的索引与指向末尾的索引重合

时,排序结束。

下面是此算法的C语言实现。 

#include<stdio.h>
#include<stdlib.h>
int main(){
    
    int arr[6]={3,9,1,2,4,7}//首先定义一个数组
    int start=0;//作为开始的索引
    int end=6-1;//作为结束的索引
    
    while(end-start>=1){
        //当开始的索引与结束的索引不重合的时候执行操作
        for(int i=start;i<end;i++){
            if(arr[i+1]<arr[i]){
                int temp=arr[i+1];
                  arr[i+1]=arr[i];
                  arr[i]=temp;                
            }//这一次循环找出6个数中的最大数  
        }
        end--;

        for(int i=end;i>start;i++){
             if(arr[i]<arr[i-1]){
                 int temp=arr[i-1];
                  arr[i-1]=arr[i];
                  arr[i]=temp;      
            }       
        }//这一次循环找出5个数中的最小数
        start++;
    }

    system("pause");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41856760/article/details/81190895
今日推荐