Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void OneWayScan2(int[] array, Stat[] mass)
- {
- int[] arrayCopy = new int[array.Length];
- CopyArray(array, arrayCopy);
- int min = int.MaxValue, max = -1, n_min = 0, n_max = 0, head = 0, dif = 0 ;
- int MaxOrMin = 1;// 1=max 0=min
- for (int i = 0; i < array.Length; i++)
- {
- mass[i] = new Stat();
- for (int j = 0; j < array.Length; j++)
- {
- if (array[j] == -1)
- {
- continue;
- }
- switch (MaxOrMin)
- {
- case 0:// MIN
- {
- if (array[j] < min)
- {
- min = array[j];
- n_min = j;
- }
- break;
- }
- case 1:// MAX
- {
- if (array[j] > max)
- {
- max = array[j];
- n_max = j;
- }
- break;
- }
- }
- }
- switch (MaxOrMin)
- {
- case 0: // MIN
- {
- dif = Math.Abs(head - array[n_min]);
- head = array[n_min];
- mass[i].numberCylinder = head;
- mass[i].numberRequest = i + 1;
- mass[i].countSteps = dif;
- array[n_min] = -1;
- min = int.MaxValue;
- MaxOrMin = 1;
- break;
- }
- case 1:// MAX
- {
- dif = Math.Abs(head - array[n_max]);
- head = array[n_max];
- mass[i].numberCylinder = head;
- mass[i].numberRequest = i + 1;
- mass[i].countSteps = dif;
- array[n_max] = -1;
- max = -1;
- MaxOrMin = 0;
- break;
- }
- }
- }
- CopyArray(arrayCopy, array);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement