Javaを使用して0、1、2の配列をソートする
0、1、2 で構成される配列が与えられた場合、すべての 0 が 1 の前に来て、すべての 2 が最後に来るように要素を並べ替えます。配列のすべての要素をその場で並べ替える必要があります。
DNF (オランダ国旗) 並べ替えアルゴリズムを使用して、この問題を解決できます。たとえば、
Input-1 -
arr[ ]= {2,0,0,1,2,1 }
Output -
0 0 1 1 2 2
説明 - 使用しますDNF ソート アルゴリズムは、0、1、2 を含む指定された配列をソートし、{0,0,1,1,2,2} として出力します。
Input-2 −
arr[ ] = {0,1,1,2,1,1,0}
Output -
0 0 1 1 1 1 2
説明 − DNF ソート アルゴリズムを使用します0、1、2 を含む指定された要素の配列を並べ替えると、{0,0,1,1,1,1,2} として出力されます。
この問題を解決する方法
指定された 0、1、2 の配列で、DNF ソート アルゴリズムを使用できます。
DNF ソート アルゴリズム - このアルゴリズムでは、配列全体を走査し、必要な要素を交換するために 3 つのポインターが必要です。
配列の先頭にロー ポインターを作成し、配列の末尾を指すハイ ポインターを作成します。
配列の中点を見つけて、配列の先頭から末尾まで反復する中間ポインターを作成します。
配列の中央のポインタが「0」の場合、下位のポインタを指す要素を交換します。低ポインタと中ポインタを追加しました。
配列の中間ポインタが '2' の場合、それを上位ポインタを指す要素と交換します。中間のポインタを増加させ、高位のポインタを減少させます。
配列の中間ポインタが「1」の場合、中間ポインタを増やします。
例
デモ
public class Solution { public static void binarySorting(int arr[], int n){ int low=0; int high= n-1; int mid=0; while(mid<=high){ if(arr[mid]==0){ int temp= arr[mid]; arr[mid]= arr[low]; arr[low]= temp; mid++; low++; } if(arr[mid]==1){ mid++; } if(arr[mid]==2){ int temp= arr[mid]; arr[mid]= arr[high]; arr[high]= temp; high--; } } } public static void print(int arr[], int n){ for (int i = 0; i < n; i++) System.out.print(arr[i] +" "); } public static void main(String[] args){ int arr[] ={ 0,0,1,0,1,0,1,2,2}; int n = arr.length; binarySorting(arr, n); print(arr, n); } }
出力
上記のコードを実行すると、次の出力が生成されます:
0 0 0 0 1 1 1 1 2
以上がJavaを使用して0、1、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)

ホットトピック











Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Java のアームストロング番号に関するガイド。ここでは、Java でのアームストロング数の概要とコードの一部について説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです
