무작위 정렬 집합의 사고
3097 단어 정렬
private static List<string> RaD(List<string> strTemp)
{
List<string> newList = new List<string>();
Random r = new Random();
while (true)
{
int i = r.Next(0, strTemp.Count);
if (!newList.Contains(strTemp[i]))
newList.Add(strTemp[i]);
if (newList.Count == strTemp.Count)
break;
}
return newList;
}
대부분은 Contains를 사용하여 포함 여부를 보고 새로운 집합에 포함되지 않아서 추가한다. 그러나 개인적으로는 매번 새로운 그룹에 삽입된 요소가 있는지 검색해 본다. 이렇게 새로운 그룹을 여러 번 훑어보는 것이 아니라고 생각한다. 그래서 내가 수정했다. 나의 생각은 무작위로 하나의 수를 만들고 이를 새로운 그룹에 추가한 다음에 이 수를 삭제하는 것이다. 추가는 코드는 다음과 같다.
private static List<string> RaD2(List<string> strTemp)
{
List<string> newList = new List<string>();
Random random = new Random();
for (int i = 0; i < strTemp.Count;)
{
int r = random.Next(0, strTemp.Count);
newList.Add(strTemp[r]);
strTemp.RemoveAt(r);
}
return newList;
}
개인적으로는 이런 효율이 더 좋고 반복 횟수를 줄였으며 매번 요소를 삭제하는 조작이 증가했다.이상은 개인적인 이해입니다. 어떤 더 빠르고 효율적이고 좋은 방법이 있는지 모르겠습니다. 무작위 정렬 집합??벽돌 찍는 걸 환영합니다!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
엑셀 VBA에서 동적 계획법으로 DNA 서열의 정렬 만들기 Needleman-Wunsch 알고리즘 구현이 기사는 DNA 서열의 정렬을 반환하는 엑셀 함수에 대한 기사입니다. 그렇다면 다음과 같은 정렬을 반환하는 함수입니다. 두 개의 행렬을 준비합니다. 정렬하고 싶은 2개의 DNA 서열의 길이를 m과 n으로 하면, 세...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.