バブルソート
基本的な考え方: 並べ替える一連の数値において、現在並べ替えられていない範囲内のすべての数値について、隣接する 2 つの数値を上から下に順番に比較して調整します。これにより、大きい数値が沈み、小さい数値が沈みます。数値が上がります。
つまり、2 つの隣接する数値が比較され、それらの順序が順序要件と逆であることが判明した場合は常に、それらは交換されます。
1回目の比較と並べ替えの結果: 最大のデータが最大のインデックスに配置されます
2回目の比較と並べ替えの結果: 1回目で最大のデータが最大のインデックスに配置されたため、データは今回比較されるのは、配列の要素数より-1少なく、2番目に大きいデータも2番目に大きいインデックスにランク付けされます
3回目の比較と並べ替えの結果:2回目とほぼ同じですが、今回は比較するデータが配列の要素数より 2 少ないです
4 回目: 3 少ない...
要約すると、大規模な並べ替えでは、配列内のデータを小さいものから順に並べる必要があります。比較の合計数は配列の長さの -1 倍になります。比較の数が増えると、毎回比較されるデータが減少します。
public class Demo4 { public static void main(String[] args) { int number[]={49,38,65,97,76,13,27,14,10}; for(int i=0;i<number.length-1;i++){ for(int j=0;j<number.length-1-i;j++){ if(number[j]>number[j+1]){ int tmp=number[j]; number[j]=number[j+1]; number[j+1]=tmp; } } for (int j = 0; j < number.length; j++) { System.out.print(number[j]+"\t"); } System.out.println("排序"+(i+1)+"次后的结果"); } } }
選択ソート
基本的な方法:
インデックス0から開始し、次の要素を順番に比較し、小さいものを最初に配置します。1回目は最小値が最小インデックスに表示され、2回目は最小値を見つけます。 2 番目に小さい値。
具体的にどうやって実装するの?
まず、最初のラウンドでは、インデックス 0 のデータが、それより小さいデータが見つかるまで、後続の各インデックスのデータと順番に比較されます。この時点で、この小さなデータがインデックスの元のデータと置き換えられます。 0、その後、この置き換えられたデータは、元のインデックス位置の後ろのインデックス上のデータと比較され続けます。つまり、最初のラウンドの後、インデックス 0 のデータはこの配列上の最小のデータでなければなりません
2 番目のラウンドが続きます。後続のデータと比較するのは 1 番目のインデックス上のデータです。このとき、比較に参加するデータは 1 つ少ないため、j の値は次のようになります。サイクルの 1 ラウンドで +1 になります。これは、j の添え字 +1 が開始されるときです。
public class Demo5 { public static void main(String[] args) { int number[]={49,38,65,97,76,13,27,14,10}; for(int i=0;i<number.length;i++){ for(int j=i+1;j<number.length;j++){ if(number[i]>number[j]){ int tmp=number[i]; number[i]=number[j]; number[j]=tmp; } } for (int j = 0; j < number.length; j++) { System.out.print(number[j]+"\t"); } System.out.println("第"+(i+1)+"次排序后的结果"); } } }挿入ソート 挿入ソートとは、現在ソート対象となっている要素を、既にソート済みのリストに挿入することです。 非常に鮮明な例は、右手でトランプをつかみ、左手で持っている分類されたトランプの中にそれを挿入することです。
挿入ソートの最悪の実行時間は O(n2) であるため、最適なソート アルゴリズムではありません。
入力配列がすでにソートされている場合、挿入ソートは最適に行われ、その実行時間は入力サイズの一次関数になります。
入力配列が逆順にソートされている場合、最悪のケースが発生します。平均的なケースは最悪のケースと同じであり、その時間コストは Θ(n2) です。
りー
以上がJava のいくつかの並べ替えアルゴリズムのアイデアとコード例を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JVMは、JavanativeInterface(JNI)およびJava Standard Libraryを介してオペレーティングシステムのAPIの違いを処理します。1。JNIでは、Javaコードがローカルコードを呼び出し、オペレーティングシステムAPIと直接対話できます。 2. Java Standard Libraryは統一されたAPIを提供します。これは、異なるオペレーティングシステムAPIに内部的にマッピングされ、コードがプラットフォーム間で実行されるようにします。

modularitydoesnotdirectlyectlyectjava'splatformindepensence.java'splatformendepenceismaindainededainededainededaindainedaindained bythejvm、butmodularityinfluencesApplucationStructure andmanagement、間接的なインパクチャプラット形成依存性.1)

bytecodeinjavaisthe intermediaterepresentationthateNablesplatformindepence.1)javacodeis compiledintobytecodestoredin.classfiles.2)thejvminterpretsorcompilesthisbytecodeintomachinecodeatime、

javaachievesplatformedenceTheTheTheJavavirtualMachine(JVM)、これは、javacodeisisisisisissompiledIntobytecode.2)javaCodeisisisisissompiledevedevicetecode.2)

Javagui開発におけるプラットフォームの独立性は課題に直面していますが、Swing、Javafx、統一外観、パフォーマンス最適化、サードパーティライブラリ、クロスプラットフォームテストを使用することで対処できます。 Javaguiの開発は、クロスプラットフォームの一貫性を提供することを目的としたAWTとSwingに依存していますが、実際の効果はオペレーティングシステムごとに異なります。ソリューションには以下が含まれます。1)SwingおよびJavafxをGUIツールキットとして使用します。 2)uimanager.setlookandfeel()を介して外観を統合します。 3)さまざまなプラットフォームに合わせてパフォーマンスを最適化します。 4)ApachepivotやSWTなどのサードパーティライブラリを使用する。 5)一貫性を確保するために、クロスプラットフォームテストを実施します。

javadevelopmentisnotentirelylylypratform-IndopentDuetoseveralfactors.1)jvmvariationsaffectperformanceandbehavioracrossdifferentos.2)nativeLibrariesviajniintroducePlatform-specificissues.3)giaiasystemsdifferbeTioneplateplatifflics.4)

Javaコードは、さまざまなプラットフォームで実行するときにパフォーマンスの違いがあります。 1)JVMの実装と最適化戦略は、OracleJDKやOpenJDKなどとは異なります。 2)メモリ管理やスレッドスケジューリングなどのオペレーティングシステムの特性もパフォーマンスに影響します。 3)適切なJVMを選択し、JVMパラメーターとコード最適化を調整することにより、パフォーマンスを改善できます。

java'splatformindepentedencehaslimitationsincludingporformanceoverhead、versioncompatibulisisues、changleSwithnativeLibraryIntegration、プラットフォーム固有の機能、およびjvminStallation/maintenation。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ホットトピック









