鸡尾酒排序
(作一个自己学习的记录)
作为冒泡排序的升级,鸡尾酒排序的思路是首先从开始向末尾循环找出一个最大数,将它放在末尾,
然后再从末尾向开始循环找出一个最小数将它放在开头。当指向开始的索引与指向末尾的索引重合
时,排序结束。
下面是此算法的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;
}