ホームページ バックエンド開発 Golang Golang のバブリングをランク付けする方法

Golang のバブリングをランク付けする方法

May 10, 2023 am 11:52 AM

Golang バブル ソート アルゴリズムの詳細説明

バブル ソートは一般的なソート アルゴリズムであり、その原理は非常に単純で、交換ソートの一種です。このアルゴリズムの中心となるアイデアは、隣接する 2 つの要素のサイズを比較し、サイズの関係に従ってそれらの位置を交換することであり、各ラウンドで最大または最小の要素がシーケンスの一端に配置されます。具体的な実装方法は 2 つあります。1 つは前から後ろへ、もう 1 つは後ろから前へです。この記事では、golang でのバブルソートの実装を紹介します。

まず、整数配列を作成し、バブル ソート関数に渡します。

package main

import "fmt"

func main() {
    arr := []int{3, 7, 1, 4, 2, 8, 5, 9, 6}
    fmt.Println("排序前:",arr)
    BubbleSort(arr)
    fmt.Println("排序后:",arr)
}

func BubbleSort(arr []int) {
    n := len(arr)
    for i := 0; i < n-1; i++ {
        for j := 0; j < n-1-i; j++ {
            if arr[j] > arr[j+1] {
                arr[j], arr[j+1] = arr[j+1], arr[j]
            }
        }
    }
}
ログイン後にコピー

BubbleSort 関数では、まず配列の長さを取得し、次に 2 つのループ ネストを設定します。外側のループは配列全体に対するループであり、内側のループは要素に対するループです。内側のループでは、隣接する要素のサイズを比較し、サイズの関係に基づいてそれらの位置を交換します。

交換メソッドは、golang の複数の代入、つまり「arr[j], arr[j 1] = arr[j 1], arr[j]」によって実装されます。このステートメントは、arr[j 1] の値を arr[j] に割り当て、arr[j] の値を arr[j 1] に割り当てます。このようにして、2 つの要素間の交換を完了できます。

ソートの各ラウンドでは、最小または最大の要素がシーケンスの一端に移動されることに注意してください。効率を確保するには、外側のループでソートされた要素の数 i を減算する必要があります (つまり、「for j := 0; j

最後に、main 関数で BubbleSort 関数を呼び出し、並べ替えの前後の配列結果をコンソールに出力します。

次に、このアルゴリズムのパフォーマンスをテストします。テストには golang 独自のテスト ライブラリを使用できます。具体的なテスト コードは次のとおりです。

package main

import (
    "testing"
)

func TestBubbleSort(t *testing.T) {
    arr := []int{3, 7, 1, 4, 2, 8, 5, 9, 6}
    BubbleSort(arr)
    if !checkSort(arr) {
        t.Error("BubbleSort test failed")
    }
}

func checkSort(arr []int) bool {
    n := len(arr)
    for i := 0; i < n-1; i++ {
        if arr[i] > arr[i+1] {
            return false
        }
    }
    return true
}
ログイン後にコピー

main 関数では、作成した BubbleSort 関数の正確さをテストするために使用される TestBubbleSort という関数を定義します。テスト関数では、BubbleSort 関数を呼び出し、checkSort 関数を使用して並べ替え結果が正しいかどうかを判断します。ソート結果が正しくない場合は、「BubbleSort テストに失敗しました」というエラーメッセージが出力されます。

次に、 go test コマンドを使用してテストを実行します。コマンド ラインに次のコマンドを入力します。

go test -v -run="TestBubbleSort"
ログイン後にコピー

このコマンドは、TestBubbleSort 関数を実行し、テスト結果をコンソールに出力します。結果は次のとおりです。

=== RUN   TestBubbleSort
--- PASS: TestBubbleSort (0.00s)
PASS
ok      _/home/go_ws/src/gotest/src/TestBubbleSort   0.097s
ログイン後にコピー

テスト結果からわかるように、ソート アルゴリズムは単体テストに合格し、テスト時間はわずか 0.097 秒でした。したがって、バブル ソート アルゴリズムは効率の点で優れたパフォーマンスを発揮します。

概要

この記事では、golang でのバブル ソートの実装を紹介し、単体テストを通じてソート アルゴリズムの正確さと効率性を検証します。実際のアプリケーションでは、必要に応じてこのアルゴリズムを適切に最適化し、より良い並べ替え結果を達成できます。

以上がGolang のバブリングをランク付けする方法の詳細内容です。詳細については、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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Golangの目的:効率的でスケーラブルなシステムの構築 Golangの目的:効率的でスケーラブルなシステムの構築 Apr 09, 2025 pm 05:17 PM

GO言語は、効率的でスケーラブルなシステムの構築においてうまく機能します。その利点には次のものがあります。1。高性能:マシンコードにコンパイルされ、速度速度が速い。 2。同時プログラミング:ゴルチンとチャネルを介してマルチタスクを簡素化します。 3。シンプルさ:簡潔な構文、学習コストとメンテナンスコストの削減。 4。クロスプラットフォーム:クロスプラットフォームのコンパイル、簡単な展開をサポートします。

Golang and C:Concurrency vs. Raw Speed Golang and C:Concurrency vs. Raw Speed Apr 21, 2025 am 12:16 AM

Golangは並行性がCよりも優れていますが、Cは生の速度ではGolangよりも優れています。 1)Golangは、GoroutineとChannelを通じて効率的な並行性を達成します。これは、多数の同時タスクの処理に適しています。 2)Cコンパイラの最適化と標準ライブラリを介して、極端な最適化を必要とするアプリケーションに適したハードウェアに近い高性能を提供します。

Golang vs. Python:パフォーマンスとスケーラビリティ Golang vs. Python:パフォーマンスとスケーラビリティ Apr 19, 2025 am 12:18 AM

Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

Golangの影響:速度、効率、シンプルさ Golangの影響:速度、効率、シンプルさ Apr 14, 2025 am 12:11 AM

speed、効率、およびシンプル性をspeedsped.1)speed:gocompilesquilesquicklyandrunseffictient、理想的なlargeprojects.2)効率:等系dribribraryreducesexexternaldedenciess、開発効果を高める3)シンプルさ:

Golang vs. Python:重要な違​​いと類似点 Golang vs. Python:重要な違​​いと類似点 Apr 17, 2025 am 12:15 AM

GolangとPythonにはそれぞれ独自の利点があります。Golangは高性能と同時プログラミングに適していますが、PythonはデータサイエンスとWeb開発に適しています。 Golangは同時性モデルと効率的なパフォーマンスで知られていますが、Pythonは簡潔な構文とリッチライブラリエコシステムで知られています。

パフォーマンスレース:ゴラン対c パフォーマンスレース:ゴラン対c Apr 16, 2025 am 12:07 AM

GolangとCにはそれぞれパフォーマンス競争において独自の利点があります。1)Golangは、高い並行性と迅速な発展に適しており、2)Cはより高いパフォーマンスと微細な制御を提供します。選択は、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

CとGolang:パフォーマンスが重要な場合 CとGolang:パフォーマンスが重要な場合 Apr 13, 2025 am 12:11 AM

Cは、ハードウェアリソースと高性能の最適化が必要なシナリオにより適していますが、Golangは迅速な開発と高い並行性処理が必要なシナリオにより適しています。 1.Cの利点は、ハードウェア特性と高い最適化機能に近いものにあります。これは、ゲーム開発などの高性能ニーズに適しています。 2.Golangの利点は、その簡潔な構文と自然な並行性サポートにあり、これは高い並行性サービス開発に適しています。

GolangとC:パフォーマンスのトレードオフ GolangとC:パフォーマンスのトレードオフ Apr 17, 2025 am 12:18 AM

GolangとCのパフォーマンスの違いは、主にメモリ管理、コンピレーションの最適化、ランタイム効率に反映されています。 1)Golangのゴミ収集メカニズムは便利ですが、パフォーマンスに影響を与える可能性があります。

See all articles