ホームページ  >  記事  >  バックエンド開発  >  golangでソートにsortパッケージを使用する方法

golangでソートにsortパッケージを使用する方法

PHPz
PHPzオリジナル
2023-04-10 14:17:20876ブラウズ

Go 言語での並べ替えの実装は、主に sort パッケージを通じて実装されます。sort パッケージは、さまざまな種類のデータを簡単に並べ替えることができるように、標準の並べ替えインターフェイスを提供します。この記事では、golangでソートするためのsortパッケージの使い方を紹介します。

sort パッケージの実装原理

sort パッケージは主に sort.Interface インターフェイスを介してソートを実装しており、3 つのメソッドがあります:

  • Len() int: Returns希望するソートする要素の数。
  • Less(i, j int) bool: 要素 i が要素 j の前にランク付けされる必要がある場合は true を返し、それ以外の場合は false を返します。
  • Swap(i, j int): 要素 i と j の位置を交換します。

sort パッケージには、ソート用の次の関数が用意されています。

  • func Ints(a []int): int 型のスライスを昇順にソートします。
  • func Float64s(a []float64): float64 型のスライスを昇順にソートします。
  • func Strings(a []string): 文字列型のスライスを昇順に並べ替えます。
  • func IntsAreSorted(a []int) bool: int 型スライスがソートされているかどうかを判定します。
  • func Float64sAreSorted(a []float64) bool: float64 型のスライスがソートされているかどうかを判断します。
  • func StringsAreSorted(a []string) bool: 文字列型のスライスがソートされているかどうかを判断します。
  • func Sort(data Interface): sort.Interface を実装したデータを並べ替えます。

サンプル コード

次は、int 型のスライスを並べ替えるサンプル コードです:

package main

import (  
    "fmt"
    "sort"
)

func main() {  
    data := []int{9, 6, 3, 8, 5, 2, 7, 4, 1}
    sort.Ints(data)
    fmt.Println(data)
}

出力結果は次のとおりです:

[1 2 3 4 5 6 7 8 9]

The以下は、sort.Interface インターフェイスを使用した並べ替えのサンプル コードです。

package main  
import (  
    "fmt"
    "sort"
)

type Person struct {  
    Name string
    Age  int
}

type ByName []Person  
func (this ByName) Len() int {
    return len(this)
}
func (this ByName) Less(i, j int) bool {  
   return this[i].Name < this[j].Name
}
func (this ByName) Swap(i, j int) {  
   this[i], this[j] = this[j], this[i]
}

func main() {  
    people := []Person{
      {"Bob", 31},
      {"John", 42},
      {"Jane", 29},
      {"Michael", 17},
      {"Chris", 51},
      {"Sarah", 37},
    }
    sort.Sort(ByName(people))
    fmt.Println(people)
}

出力結果は次のとおりです。

[{Bob 31} {Chris 51} {Jane 29} {John 42} {Michael 17} {Sarah 37}]

上記のコードは、最初に Person 構造体と ByName 型を定義します。 ByName 型は、sort.Interface インターフェイスの 3 つのメソッドを実装します。これらは、2 つの要素を比較する方法と要素を交換する方法を並べ替えパッケージに指示するために使用されます。次に、People 型データを格納するために people 変数が定義されます。最後に、sort.Sort 関数を呼び出して、人物を名前の昇順に並べ替えて結果を出力します。

概要

この記事では、golang でソートにソートパッケージを使用する方法、ソートパッケージの実装原理、サンプルコードを紹介します。データ型を並べ替えるには、sort.Interface インターフェイスに 3 つのメソッドを実装するだけで済みます。sort パッケージには、int、float64、string などの一般的なデータ型の並べ替え関数がすでに提供されています。使用する場合は、次のことだけを行う必要があります。キャンに電話します。

以上がgolangでソートにsortパッケージを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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