usingSystem;usingSystem.Linq;usingSystem.Collections.Generic;classC{staticIEnumerable<int>countingSort(int[]src,intmin,intmax){varl=src.ToLookup(i=>i);returnEnumerable.Range(min,max-min+1).SelectMany(i=>l[i]);//こう書いても同じ// return from i in Enumerable.Range(min, max - min + 1)// from e in l[i]// select e;}staticvoidMain(){varsort=countingSort(newint[]{-1,9,4,8,9,6,3,9,5,2},-1,9);foreach(vareinsort)Console.Write(e+" ");}}
egtra #7749() [ C# ] Rating0/0=0.00
LINQでぴしっとはまると気持ちいいですね。基数ソートのつもりでしたが、鳩の巣ソートらしいです。Mainは#6652から持ってきました、ありがとうございます。
Rating0/0=0.00-0+
[ reply ]