バブルソートの最適化バージョン、パフォーマンスがほぼ2倍になりました
元のバブルソートは、数ラウンドの交換後に配列が順序付けされた場合でも (たとえば、配列 [2,1,3,4,5,6,7])、最初の 1 ラウンド後には比較的時間がかかります。秩序あるものにはなりましたが、頑固な泡立ちにより栄養のないペアごとの比較を継続する必要があり、時間が犠牲になります。
現在の配列が正しいかどうかを判断するためにフラグを使用する場合、正しい場合はループを終了します。これにより、バブル ソートのパフォーマンスが大幅に向上します~
バブル ソートの時間計算量は O(n* n) そのため、データが増えると速度が遅くなり、大きなデータの並べ替えには非常に不向きになるため、テスト時には長さ 800 のランダム配列も使用しました。
コードは次のとおりです:
package go.derek;
import java.util.*;
public class Sort {
//バブルソート
public void bubbleSort(int[] arr){
for(int i= 0; i
if(arr[j]
arr[j]=arr[j-1];
arr[j-1]=tmp;
}
}
}
}
//バブルソートの改良版
public void bubbleSort_plus(int[] arr){
boolean flag=true;
for(int i=0;i
for(int j=arr.length- 1 ;j>i;j--){
if(arr[j]
int tmp=arr[j];
arr[j]=arr[ j -1];
arr[j-1]=tmp;
}
}
}
}
public static void main(String[] args){
Sort s=new Sort();
int[] arr1= new int[800];
for(int i=0;i
}
int[] arr2=new int [800];
for(int i=0;i
}
long n=System.currentTimeMillis( ) ;
s.bubbleSort_plus(arr1);
long m=System.currentTimeMillis();
System.out.println("バブルソート時間: "+(m-n)+"ms");
long a=System. ();
s.bubbleSort_plus(arr2);
long b=System.currentTimeMillis();
System.out.println("最適化後にかかる時間: "+(b-a)+"ms");
}
}
複数回実行した後、最も明白な結果が見つかりました:
バブルソート時間: 12ミリ秒
最適化後の時間: 4ミリ秒
このフラグの重要性がわかります~
より多くのバブリングソート最適化バージョン、パフォーマンスはほぼ 2 倍になります。関連記事については、PHP 中国語 Web サイトに注目してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











関数ポインター テクノロジは、コードの効率と再利用性を、具体的には次のように向上させることができます。 効率の向上: 関数ポインターを使用すると、重複するコードが削減され、呼び出しプロセスが最適化されます。再利用性の向上: 関数ポインターを使用すると、一般的な関数を使用してさまざまなデータを処理できるようになり、プログラムの再利用性が向上します。

C# でバブル ソート アルゴリズムを実装する方法 バブル ソートは、隣接する要素を複数回比較し、位置を交換することによって配列を配置する、シンプルだが効果的なソート アルゴリズムです。この記事では、C# 言語を使用してバブル ソート アルゴリズムを実装する方法と具体的なコード例を紹介します。まず、バブルソートの基本原理を理解しましょう。アルゴリズムは配列の最初の要素から開始し、それを次の要素と比較します。現在の要素が次の要素より大きい場合は、位置を交換します。現在の要素が次の要素より小さい場合は、その位置を維持します。

カスタム PHP 配列ソート アルゴリズムを作成するにはどうすればよいですか?バブルソート: 隣接する要素を比較および交換することによって配列をソートします。選択ソート: 毎回最小または最大の要素を選択し、現在の位置と入れ替えます。挿入ソート:ソートされた部分に要素を1つずつ挿入します。

データ構造とアルゴリズムは Java 開発の基礎です。この記事では、Java の主要なデータ構造 (配列、リンク リスト、ツリーなど) とアルゴリズム (並べ替え、検索、グラフ アルゴリズムなど) について詳しく説明します。これらの構造は、スコアを保存するための配列、買い物リストを管理するためのリンク リスト、再帰を実装するためのスタック、スレッドを同期するためのキュー、高速検索と認証のためのツリーとハッシュ テーブルの使用など、実際の例を通じて説明されています。これらの概念を理解すると、効率的で保守しやすい Java コードを作成できるようになります。

C++ 関数のパフォーマンス最適化アルゴリズムの選択: 効率的なアルゴリズム (クイック ソート、バイナリ検索など) を選択します。最適化スキル: 小さな関数のインライン化、キャッシュの最適化、ディープコピーの回避、およびループの展開。実際のケース: 配列の最大要素位置を検索する場合、最適化後に二分探索とループ拡張が使用され、パフォーマンスが大幅に向上します。

PHP 配列ソートアルゴリズムの複雑さ: バブルソート: O(n^2) クイックソート: O(nlogn) (平均) マージソート: O(nlogn)

バブリング イベントとは、Web 開発において、要素でイベントがトリガーされると、イベントがドキュメント ルート要素に到達するまで上位の要素に伝播することを意味します。この伝播方法は、泡が下から徐々に上昇していくようなものであるため、バブリングイベントと呼ばれます。実際の開発では、イベントを正しく処理するために、バブリング イベントがどのように機能するかを知り、理解することが非常に重要です。以下では、バブリングイベントの概念と使用法を、具体的なコード例を通して詳しく紹介します。まず、親要素と 3 つの子要素を持つ単純な HTML ページを作成します。

クラウド コンピューティングでは、大量のデータを管理および処理するために、データ構造とアルゴリズムの使用が不可欠です。一般的なデータ構造には、配列、リスト、ハッシュ テーブル、ツリー、グラフなどがあります。一般的に使用されるアルゴリズムには、並べ替えアルゴリズム、検索アルゴリズム、グラフ アルゴリズムなどがあります。 Java の機能を活用することで、開発者は Java コレクション、スレッドセーフなデータ構造、および Apache Commons Collection を使用して、これらのデータ構造とアルゴリズムを実装できます。
