カクテルソート(ダブルバブルソート、スターリングソート、リップルソート)
カクテルソート(ダブルバブルソート、スタードソート、またはリップルソート)
using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace Sort { class CockTailSorter { private static int[] myArray; private static int arraySize; public static int[] Sort(int[] myArray) { arraySize = myArray.Length; CockTailSort(myArray); return myArray; } public static void CockTailSort(int[] myArray) { int low, up, index, i; low = 0;//数组起始索引 up = myArray.Length - 1;//数组索引最大值 index = low;//临时变量 //判断数组中是否有多个元素 while (up > low)//每一次进入while循环都会找出相应范围内最大最小的元素并分别放到相应的位置 { //进入该for循环会将索引限定范围内最大的元素放到最右边 for (i = low; i < up; i++)//从上向下扫描 { if (myArray[i] > myArray[i + 1]) { Swap(ref myArray[i], ref myArray[i + 1]); index = i;//记录当前索引 } } up = index;//记录最后一个交换的位置 //进入该for循环会将索引限定范围内最小的元素放到最左边 for (i = up; i > low; i--)//从最后一个交换位置从下往上扫描 { if (myArray[i] < myArray[i - 1]) { Swap(ref myArray[i], ref myArray[i - 1]); index = i; } } low = index;//记录最后一个交换的位置 } } private static void Swap(ref int left, ref int right) { int temp; temp = left; left = right; right = temp; } } }
カクテルソートは、バブルソートのわずかなバリエーションに相当します。違いは、バブル ソートでは、低位から高位、次に高位から低位の順序でシーケンス内の各要素のみが低位から上位に比較されることです。バブル ソートは一方向 (低位から高位) でのみ比較し、各サイクルで 1 つの項目のみを移動するため、バブル ソートよりもわずかに優れたパフォーマンスが得られます。
カクテルソートを使用すると、配列内の数値が不規則に配置され、最初に最小の数値を見つけて最初に配置され、次に最大の数値を見つけて最後に配置されます。次に、2 番目に小さい数値を見つけて 2 番目の位置に置き、次に 2 番目に大きい数値を見つけて最後から 2 番目の位置に置きます。並べ替えが完了するまで続きます。
上記はカクテルソーティング(ダブルバブルソーティング、スターリングソーティング、またはリップルソーティング)の内容です。その他の関連コンテンツについては、PHP中国語ウェブサイト(www.php.cn)をご覧ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。
