ホームページ Java &#&チュートリアル Java 開発: データ構造とアルゴリズムを実装する方法

Java 開発: データ構造とアルゴリズムを実装する方法

Sep 21, 2023 pm 04:31 PM
java データ構造 アルゴリズム

Java 開発: データ構造とアルゴリズムを実装する方法

Java 開発: データ構造とアルゴリズムを実装する方法、具体的なコード例が必要です

はじめに: データ構造とアルゴリズムはコンピューター サイエンスにおける重要な基礎知識であり、すべての人にとっても重要です。すべての Java 開発者が習得すべきスキルです。この記事では、Java で一般的なデータ構造とアルゴリズムを実装する方法を紹介し、具体的なコード例を示します。

1. データ構造の実装

  1. Array

Array は最も単純なデータ構造の 1 つで、次のように Java で使用できます。整数配列:

int[] array = new int[5];
ログイン後にコピー
  1. LinkedList

リンク リストは動的データ構造です。Java では、次のコードを使用して一方向リンク リストを実装できます。 :

class Node {
    int value;
    Node next;
    
    public Node(int value) {
        this.value = value;
        this.next = null;
    }
}

class LinkedList {
    Node head;
    
    public void add(int value) {
        Node newNode = new Node(value);
        
        if (head == null) {
            head = newNode;
        } else {
            Node current = head;
            while (current.next != null) {
                current = current.next;
            }
            current.next = newNode;
        }
    }
}
ログイン後にコピー
  1. スタック

スタックは後入れ先出し (LIFO) データ構造です。次のコードを使用してスタックを実装できます:

class Stack {
    int[] array;
    int top;
    
    public Stack(int size) {
        array = new int[size];
        top = -1;
    }
    
    public void push(int value) {
        if (top < array.length - 1) {
            array[++top] = value;
        }
    }
    
    public int pop() {
        if (top >= 0) {
            return array[top--];
        }
        return -1;
    }
}
ログイン後にコピー

2. 共通アルゴリズムの実装

  1. ソートアルゴリズム

(1) バブルソート (Bubble Sort)

バブルソートはa 並べ替え対象の要素を繰り返し訪問し、隣接する要素を比較し、入れ替えが発生しなくなるまで位置を入れ替える単純な並べ替えアルゴリズム。

次は、Java を使用してバブル ソートを実装するコード例です。

public void bubbleSort(int[] array) {
    int n = array.length;
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - i - 1; j++) {
            if (array[j] > array[j + 1]) {
                int temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
}
ログイン後にコピー

(2) クイック ソート (クイック ソート)

クイック ソートは、一般的に使用されるソート アルゴリズムです。ピボット要素を選択することでシーケンスを 2 つの部分に分割し、2 つの部分を別々に並べ替えます。

次は、Java を使用してクイック ソートを実装するコード例です。

public void quickSort(int[] array, int left, int right) {
    if (left < right) {
        int pivot = partition(array, left, right);
        quickSort(array, left, pivot - 1);
        quickSort(array, pivot + 1, right);
    }
}

public int partition(int[] array, int left, int right) {
    int pivot = array[right];
    int i = left - 1;
    for (int j = left; j < right; j++) {
        if (array[j] < pivot) {
            i++;
            int temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }
    int temp = array[i + 1];
    array[i + 1] = array[right];
    array[right] = temp;
    return i + 1;
}
ログイン後にコピー
  1. 検索アルゴリズム

(1) 二分探索 (Binary Search)

二分検索は、順序付けされた配列内の指定された要素の位置を見つける一般的な検索アルゴリズムです。

次は、Java を使用して二分探索を実装するコード例です。

public int binarySearch(int[] array, int target) {
    int left = 0;
    int right = array.length - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (array[mid] == target) {
            return mid;
        } else if (array[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return -1;
}
ログイン後にコピー

(2) 線形探索 (Linear Search)

線形探索は、単純な検索アルゴリズムです。ターゲット要素が見つかるまで、または配列全体が走査されるまで、配列内の要素を 1 つずつ比較します。

次は、Java を使用して線形検索を実装するコード例です:

public int linearSearch(int[] array, int target) {
    for (int i = 0; i < array.length; i++) {
        if (array[i] == target) {
            return i;
        }
    }
    return -1;
}
ログイン後にコピー

結論:

この記事の導入を通じて、一般的なデータ構造の実装方法を学びました。 Java メソッドのアルゴリズムと具体的なコード例が示されています。読者の皆様が、実践を通じてこの知識をさらに理解し、習得し、プログラミング能力を向上できることを願っています。

以上がJava 開発: データ構造とアルゴリズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

Java の平方根のガイド。ここでは、Java で平方根がどのように機能するかを、例とそのコード実装をそれぞれ示して説明します。

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

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

Javaのアームストロング数 Javaのアームストロング数 Aug 30, 2024 pm 04:26 PM

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

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

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

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

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

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

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

See all articles