iSAMrx72's思いつきBlog

twitterが使いこなせない管理人のメモです。思いついたとき書きます。
トップスポンサー広告スポンサーサイト

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/ (--) --:--| スポンサー広告 | コメント(-) | トラックバック(-) | 編集
トッププログラミング言語C#興味のある方は、居ないでしょうね。

C#興味のある方は、居ないでしょうね。

ソート関連で2題です。前のは年齢をキーにソート。後半は年齢で無く、名前の読みに

変更するとどうなるかです。分類法は三つあります。どれも試しました。話題の無いときの

繋ぎです。w

using System;

namespace Sample
{

 

    public class Entry : IComparable<Entry>
    {
          public int age;
          public string name;

    public Entry(int age, string name)
        {
            this.age = age;
            this.name = name;
        }

    int IComparable<Entry>.CompareTo(Entry other)
        {
            return this.age.CompareTo(other.age);
        }
       


       
    public static void BubbleSort<T>(T[] a)
          where T : IComparable<T>
        {
              int n = a.Length;
              for (int i = 0; i < n - 1; i++)
                for (int j = n - 1; j > i; j--)
                      if (a[j].CompareTo(a[j - 1]) < 0)
                        Swap(ref a[j], ref a[j - 1]);
        }
       
    public static void ShellSort<T>(T[] a)
             where T : IComparable<T>
        {
              int n = a.Length;
              int h;
              for (h = 1; h < n / 9; h = h * 3 + 1) ;
              for (; h > 0; h /= 3)
                for (int i = h; i < n; i++)
                      for (int j = i; j >= h && a[j - h].CompareTo(a[j]) > 0; j -= h)
                        Swap(ref a[j], ref a[j - h]);
        }
       
    public static void Swap<T>(ref T a, ref T b)
        {
              T c = a; a = b; b = c;
        }

   

    static void Main()
        {
                Entry[] list = new Entry[]{
              new Entry(10, "a"),
              new Entry(11, "b"),
              new Entry(12, "c"),
              new Entry(11, "d"),
              new Entry(13, "e"),
              new Entry(10, "f"),
              new Entry(12, "g"),
              new Entry(14, "h")};
         
              //Array.Sort(list);
              //BubbleSort( list );
              ShellSort( list );
             
            foreach (Entry entry in list)
            {
                Console.Write("{0}, {1}\n", entry.age, entry.name);
            }

        }
       
    }//Entry
 
}//namespace Sample

スポンサーサイト
11/24/ (土) 01:27| プログラミング言語コメント(1) | トラックバック(-) | 編集
EXTENDED BODY:

using System;

namespace Sample
{

 

    public class Entry

1970/01/01(木) 09:00:00 | URL | #79D/WHSg[ 編集]
URL
コメント
パスワード
秘密
管理者にだけ表示を許可する
 
プロフィール

isamrx73

Author:isamrx73
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック

月別アーカイブ
カテゴリ
検索フォーム

RSSリンクの表示
リンク
ブロとも申請フォーム
QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。