Member 14006541 Ответов: 0

Бинарный+линейный поисковый алгоритм со случайными числами


Я хочу 2 сделать двоичный+линейный поисковый алгоритм с числами rand,я создал код,который запрашивает 2 input numb, как мне установить так, чтобы randm num всплывал в ascend ordr & я должен ввести значение поиска?

Что я уже пробовал:

package Computer30;
import java.util.Scanner;

public class test3 {

		public static void main(String[] args)  {
		  
	      int counter, number, x, first, last, middle;
	      int array[];
	      
	      Scanner input = new Scanner(System.in);   
	      System.out.println("Enter number of the elements" + System.lineSeparator() + "Condition: First number has to be smaller than the last number(in ascending order)");
	      number = input.nextInt();
	      array = new int[number]; 
	      System.out.println("Enter " + number + " numbers");
		   
	      for (counter = 0; counter<number; counter++)
	           array[counter] = input.nextInt();
	 
	      System.out.println("Enter the search value");
	      x = input.nextInt();
	      first = 0;
	      last = number -1;
	      middle = (first + last)/2;
	      
	      while(first<=last) //for binary search
	      {
	          if ( array[middle] < x )
		         first = middle +1;
	          
		      else if ( array[middle] == x ) {
		          System.out.println(x + " is found @ location #" + (middle + 1) + " (Binary)");
		           break;
		      }
	          
		      else {
		    	  last = middle - 1; 
		 
		      } middle = (first + last)/2; }
		      
		     if ( first>last )
		         System.out.println(x + "doesn't exist in this list (Binary)");
		     
		  for (counter = 0; counter < number; counter++) {   //for linear search
		   	
		    if (array[counter] == x) 
			    {
		    System.out.println(x + " is located in the postition #" + (counter+1) + " (Linear)");
			       break;
		       }
			   
		    if (counter == number) {
		    System.out.println(x + " doesn't exist in this list (Linear)");
		    
		  }
			  }
		}


	}


Это кодирование для случайных чисел:

 package Computer30;

import java.util.Random;

class test {

	public static void main(String[] args)  {
		 
	      Random r = new Random();
	      int totalNums = 20; 
	      int count = 0;
	      int number = 0;
	      int currVal = 0;
	      while(count < totalNums) { 
	    	  
	          currVal = r.nextInt(10);
	          number = number + currVal; 
	          System.out.println(number);
	          count++;
}
	}
}

Пожалуйста помочь

CPallini

Не совсем понятно, что вы хотите делать.
Нужны ли вам упорядоченные случайные входные числа (в вашем коде пользователь должен ввести упорядоченные числа)?

0 Ответов