您的位置:首页 > 大数据 > 人工智能

Cocktail Sort 鸡尾酒排序 (来回排序)

2013-07-08 05:32 274 查看
/*
Cocktail Sort
鸡尾酒排序
时间复杂度:n^2   最好情况接近n
适用于部分已排列的乱序数据
*/
#include <stdio.h>
#include <stdbool.h>

int main()
{
int sort_arr[10] = {12,4,6,2345,657,34,657,34,576,34};
int i;
int bottom = 0;
int top = 10 - 1;
bool swapped = true;
while(swapped == true)
{
swapped = false;
for(i = bottom; i < top; i++)
{
int temp;
if(sort_arr[i] > sort_arr[i + 1])
{
temp = sort_arr[i];
sort_arr[i] = sort_arr[i+1];
sort_arr[i+1] = temp;
swapped = true;
}
}
top = top - 1;
for(i = top; i > bottom; i--)
{
if(sort_arr[i] < sort_arr[i - 1])
{
int temp;
temp = sort_arr[i];
sort_arr[i] = sort_arr[i-1];
sort_arr[i-1] = temp;
swapped = true;
}
}
bottom = bottom + 1;
}

for(i = 0; i < 10; i++)
{
printf("%d ", sort_arr[i]);
}

printf("\n");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: