From bcc0247b1d9cab5c146857663ac4f59af51c20dc Mon Sep 17 00:00:00 2001 From: spacexzm Date: Tue, 11 Feb 2025 08:40:22 +0000 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8F=8C=E5=90=91=E5=86=92?= =?UTF-8?q?=E6=B3=A1=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: spacexzm --- algorithm/cocktail_shaker_sort.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 algorithm/cocktail_shaker_sort.py diff --git a/algorithm/cocktail_shaker_sort.py b/algorithm/cocktail_shaker_sort.py new file mode 100644 index 0000000..fa74f1e --- /dev/null +++ b/algorithm/cocktail_shaker_sort.py @@ -0,0 +1,21 @@ +def cocktail_shaker_sort(arr): + l, r = 0, len(arr) - 1 + while l < r: + sw = 0 + for i in range(l, r): + if arr[i] > arr[i + 1]: + arr[i], arr[i + 1] = arr[i + 1], arr[i] + sw = i + r = sw + + for i in range(r, l, -1): + if arr[i] < arr[i - 1]: + arr[i], arr[i - 1] = arr[i - 1], arr[i] + sw = i + l = sw + + return arr + +arr = [64, 34, 25, 12, 22, 11, 90] +sorted_arr = cocktail_shaker_sort(arr) +print("排序后的数组:", sorted_arr) \ No newline at end of file -- Gitee