たとえば、2 つの配列で重複する要素を見つける単純なネストされたループを実行しています。リストのサイズが 2000 の場合、プログラムを連続して数回実行すると、平均で約 25 ミリ秒かかります (推測)。ただし、プログラムを for ループ内で 1 回実行すると、ループ回数が増えるほど、1 回の反復の平均実行時間が速くなります。たとえば、10 回は反復ごとに 5 ミリ秒、10000 回は 2 ミリ秒です。
さまざまなリストサイズでいくつかの異なるタイプのリスト交差 (ネストされたループ、バイナリ検索など) の実行時間を測定する必要があるため、どちらがより正確かはわかりません。何度も実行するには時間がかかりすぎるため、長いものではさらに問題になります。
for (int i = 0; i < A.length-1; i++) {
for (int j = 0; j < B.length-1; j++) {
if (A[i] == B[j]) {
inter++;
}
}
}
使用するリストを生成する方法:
public studentList(int size, String course) {
int IDrange=2*size;
studentID=new int[size];
boolean[] usedID=new boolean[IDrange];
for (int i=0;i<IDrange;i++) usedID[i]=false;
for (int i=0;i<size;i++) {
int t;
do {
t=(int)(Math.random()*IDrange);
} while (usedID[t]);
usedID[t]=true;
studentID[i]=t;
}
courseName=course;
numberOfStudents=size;
}