자료구조 : 배열 (Array)
배열은 연속적인 메모리상에 동일한 타입(혹은 그의 파생타입)의 요소를 일렬로 저장하는 자료 구조로서 배열 요소는 인덱스를 사용하여 직접적으로 엑세스할 수 있다. 배열은 고정된 크기를 가지며, 배열의 사이즈와 상관없이 한 요소를 엑세스하는 시간은 인덱스를 사용할 경우 O(1)이 된다. 하지만 인덱스를 알지 못하고 소트되지 않은 배열에서 값으로 데이타를 찾기 위해서는 O(n)의 시간이 소요된다. 소트된 배열에서 값을 찾는 경우는 Binary Search를 이용할 수 있으므로 O(log N)의 시간이 소요된다.
int[] scores = new int[100];
scores[0] = 90;
int val = scores[0];
scores[0] = 90;
int val = scores[0];
C# 배열의 사용
모든 C# 배열은 내부적으로 .NET Framework의 System.Array에서 파생된 것으로 상속에 의해 System.Array의 메소드, 프로퍼티를 사용할 수 있다. 다음은 100이하의 10개의 랜덤 숫자를 배열에 넣고 그 배열 요소들의 합을 구하는 예제이다.
예제
int sum = 0;
int[] nums = new int[10];
Random rand = new Random();
for (int i = 0; i < nums.Length; i++)
{
nums[i] = rand.Next() % 100;
}
for (int i = 0; i < nums.Length; i++)
{
sum += nums[i];
}
Console.WriteLine(sum);
int[] nums = new int[10];
Random rand = new Random();
for (int i = 0; i < nums.Length; i++)
{
nums[i] = rand.Next() % 100;
}
for (int i = 0; i < nums.Length; i++)
{
sum += nums[i];
}
Console.WriteLine(sum);