标签:
最近做项目中,要用到数组的排序,并最终输出数组的排序序号,小小试了一下。
比如:有这个一个数组,5, 6, 4, 2, 8, 0, 2, 8, 6, 2
要求输出这个数组排名数组(可多重复性):即3,2,4,5,1,6,5,1,2,5,至于为什么是这个就不多说。
下面是代码实现:
static void Main(string[] args)
{
int[] iArrary = new int[] { 5, 6, 4, 2, 8, 0, 2, 8, 6, 2 };//8 8 6 6 5 4 2 2 2 0 8 6 5 4 2 0 3,2,4,5,1,6,5,1,2,5
int[] ar = new int[] { 5, 6, 4, 2, 8, 0, 2, 8, 6, 2 };
int[] list = Sort(iArrary).Distinct<int>().ToArray();//从大到小排序之后,去重
for (int i = 0; i < ar.Length; i++)
{
for (int j = 0; j < list.Length; j++)
{
if (ar[i] == list[j])
{
Console.Write(j + 1 + ",");
}
}
}
Console.ReadKey();
}
下面是排序的方法;(大到小排序):
#region 排序的方法
public static int[] Sort(int[] list)
{
for (int i = 0; i < list.Length - 1; i++)//控制比较的回数
{
for (int j = 0; j < list.Length - 1 - i; j++)
{
if (list[j] < list[j + 1])
{
int temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
return list;
}
#endregion
排序结果:8 8 6 6 5 4 2 2 2 0
输出结果:3,2,4,5,1,6,5,1,2,5
标签:
原文地址:http://www.cnblogs.com/Yunshine-sina/p/4795245.html