最近做项目中,要用到数组的排序,并最终输出数组的排序序号,小小试了一下。
比如:有这个一个数组,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
时间: 2024-11-05 22:53:26