看板 C_Sharp 關於我們 聯絡資訊
※ 引述《wildcupid (小漁歌)》之銘言: : 今天在練習的時候遇到了一個瓶頸卡很久 : 假設今天我有兩個陣列 : A = [12 35 8 99 6] //與B相對位置的值 : B = [0 1 2 3 4] //A裡每個值的相對index : 我稍微解釋一下 : 12的index為0 : 35的index為1... 以此類推 : 如今因為我想找出A陣列中的最小值 : 所以我必須對A做sort : Array.sort(A) : 此時抓出A[0]就知道最小值是6了 : 但是同樣的我也想要知道這個最小值原本的index(也就是4) : 所以想請問一下大家有沒有比較好的方法呢? : 我是有想到一個很笨又很麻煩的 : 大致上的想法是先把A複製一次 : 然後去sort這個複製的A : 抓出最小值後再回到原本的A去找這個最小值相對應的index : 希望有人可以提供比較好的方法囉 : 感謝!!! using System.Collections.Generic; using System.Linq; int[] A = { 12, 35, 8, 99, 6 }; //最小值 int min = A.Min(); //最小值的index int minindex = Array.IndexOf(A, A.Min()); : james732大大可以跟我說一下不用排序的方法嗎? : 另外其實我是想找最小的前幾個 : 例如我想取前三小 : 也就是6 8 12 : 而我想知道他們的原始index 至於這個暫時也想不出有什麼比較好的方法 我目前一時想到的也是產生一個新array或List去作排序再去找index List<int> listA = A.ToList(); listA.Sort(); // 6, 8, 12 int[] newA = listA.TakeWhile((number, index) => index < 3).ToArray(); //4, 2, 0 (6, 8, 12 的 index) int[] mins = newA.Select(number => Array.IndexOf(A, number)).ToArray(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.137.229 ※ 編輯: ashram 來自: 59.104.137.229 (01/25 01:51)