排序演算法1 雙向氣泡排序(雞尾酒排序)

2021-09-01 11:56:22 字數 661 閱讀 1601

總結一下最近學習的幾個排序演算法

一開始找的是氣泡排序,在網上找資料時發現了這個雞尾酒排序,比較有意思。

雞尾酒排序就是雙向氣泡排序

先找到最小的數字,把他放到第一位,然後找到最大的數字,放到最後一位。

然後再找第二小的數字放到第二位,再找第二大的數字放到倒數第二位,以此類推,直到完成排序

#include #include void swap(int *,int *);

void print(int,int);

void cocktail_sort(int a,int n)

} top = bound;

//從後往前找

for(int i = top ; i > bottom ; --i)

}bottom = bound; }}

void swap(int *a,int *b)

void print(int a,int n)

printf("\n");

}int main()

; cocktail_sort(a,10);

print(a,10);

system("pause");

return 0;

}

上面的**在本質上還是乙個氣泡排序,所以時間複雜度為o(n2)

氣泡排序 雞尾酒排序

include 交換函式 void swap int a,int i,int j 列印陣列 void printa int a,int len printf n 氣泡排序 int main1 int len sizeof a sizeof a 0 int i,j 外層迴圈控制輪數,每一輪找出乙個最大...

氣泡排序案例,雞尾酒排序

概念 依次比較相鄰的兩個數,將小數放在前面,大數放在後面 第一趟可得到 將最大數放到最後一位,第二趟可得到 將第二大的數放到倒數第二位,如此下去,重複以上過程,直至最終完成排序。由於排序過程中,總是將小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。思路 用二重迴圈實現,外迴圈變數設為i...

排序演算法 雞尾酒排序

雞尾酒排序是一種在氣泡排序的基礎上進行改進的演算法。和氣泡排序的從陣列的一端乙個個排序到另一端的單方向的順序不同,雞尾酒排序的元素比較和交換的雙向的。雙向是什麼意思呢?就是說,對於雞尾酒排序,第一輪從左到右進行排序,這裡和氣泡排序一模一樣,但是第二輪就不一樣了,此時需要的是從右到左,換個方向進行排序...