VB.Netでソート [.NET]

| コメント(0) | トラックバック(1)

何か、επιστημηさんのところで(というかわんくま同盟内で?)ソート祭りだそうなので、せっかくなので挑戦してみる。

Option Explicit On

Imports System.Diagnostics
Imports System.Collections.Generic

Module Program
  Sub Sort(elm() As Integer)
    Dim startInfo As New ProcessStartInfo("sort")
    startInfo.CreateNoWindow = True
    startInfo.RedirectStandardError = False
    startInfo.RedirectStandardInput = True
    startInfo.RedirectStandardOutput = True
    startInfo.UseShellExecute = False
    
    Dim maxLen As Integer
    maxLen = 0
    For Each e As Integer In elm
      Dim len As Integer
      len = e.ToString().Length
      If len > maxLen Then
        maxLen = len
      End If
    Next
    
    Dim proc As New Process
    proc.StartInfo = startInfo
    If proc.Start Then
      For Each e As Integer In elm
        proc.StandardInput.WriteLine("{0:D" & maxLen.ToString() & "}", e)
      Next
      proc.StandardInput.Close
      
      Dim result As New List(Of Integer)
      While Not proc.StandardOutput.EndOfStream
        Dim line As String
        line = proc.StandardOutput.ReadLine
        line.TrimEnd(Nothing)
        result.Add(Integer.Parse(line))
      End While
      
      result.ToArray().CopyTo(elm, 0)

      proc.Close
    End If
    
  End Sub
  Sub Main()
    Dim elm() As Integer = { 3, 1, 4, 1, 4, 9, 10, 99, 123 }
    
    For Each e As Integer In elm
       Console.WriteLine(e)
    Next
    
    Sort(elm)

    Console.WriteLine("sorted")

    For Each e As Integer In elm
      Console.WriteLine(e)
    Next
    
    Console.Write("Press any key to continue . . . ")
    Console.ReadKey(True)
  End Sub
End Module

よく確認してないので、ネタがかぶってるかも。まぁいいや。

元ネタ(あえてリンク貼らず)の方には「回答公開禁止」とか書いてあるけどwankuma内じゃないし、ネタだしいいよね。つか、ソートの実装とかそこらじゅうに転がってるだろうし。まずかったらきっとTB蹴ってくれることでしょう(まる)

14:00 追記。 elm() に { 1,2,10 } とか入れると 1 10 2 の順に表示しやがるので、ちょっとコード修正。そういやsortは文字列としてソートするんだった。

トラックバック(1)

トラックバックURL: http://floralcompany.jp/mt/mt-tb.cgi/155

前回 に引き続き、もういっちょソートネタ... 続きを読む

コメントする

AUTHOR

  • turugina (虎王 剱奈)
  • E-mail: turugina {at} floralcompany.jp
  • pixiv
  • ニジエ

2014年5月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.2.10

- 警 告 -

本サイトにはいわゆる「18禁画像」(イラスト)へのリンクが存在します。 未成年の方や、その手の画像に不快感を覚える方は、 該当記事(「えちぃの」及び「ちょっとえちぃの」カテゴリ) をご覧にならないようお願いいたします。

上記を理解した上で非表示のブログパーツを表示する
あわせて読みたいブログパーツ
ついった
drawr/pixiv/twitpic