Упражнения Java Array: разделение всех нулей на левой стороне и всех единиц на правой стороне заданного массива нулей и единиц
Java Array: упражнение 42 с решением
Напишите Java-программу для разделения всех нулей на левой стороне и всех единиц на правой стороне заданного массива нулей и единиц.
Иллюстрированная презентация:
Пример решения :
Java-код:
import java.util.*;
import java.lang.*;
public class Main
{
public static void main (String[] args)
{
int nums[] = {0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1};
int i, nums_size = nums.length;
int left = 0, right = nums_size - 1;
System.out.println("Original Array : "+Arrays.toString(nums));
while (left < right)
{
/* While 0 at left increment left index */
while (nums[left] == 0 && left < right)
left++;
/* While we see 1 at right decrement right index*/
while (nums[right] == 1 && left < right)
right--;
if (left < right)
{
nums[left] = 0;
nums[right] = 1;
left++;
right--;
}
}
System.out.println("Array after segregation is : "+Arrays.toString(nums));
}
}
Пример вывода:
Исходный массив: [0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1] Массив после сегрегации: [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1]
Блок - схема:
Визуализация выполнения кода Java (Python Tutor):
Редактор кода Java:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на Java, чтобы найти самые маленькие и вторые самые маленькие элементы данного массива.
Далее: Напишите программу на Java, чтобы найти все комбинации четырех элементов данного массива, сумма которых равна заданному значению.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code