Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Libraries
- import java.io.*;
- import java.net.*;
- import java.util.*;
- public class EserciziJava{
- /*
- * scrivere un metodo, detto frequences, che, dato in input un array a di numeri interi non vuoto, restituisca l'array delle frequenze degli elementi distinti di a, in ordine crescente dei valori degli elementi. Ad esempio, con input il vettore {1,6,5,8,6,6,8,5,3,1,6,8}, il metodo deve restituire l'array {2,1,2,4,3}, in quanto il valore 1 appare due volte, il 3 una volta, il 5 due volte, il 6 quattro volte e l'8 tre volte. L'array in input non deve
- Esempi
- Input: {1,6,5,8,6,6,8,5,3,1,6,8}
- Output: {2,1,2,4,3}
- Input: {6,6,6,6}
- Output: {4}
- Input: {3,5,6,2}
- Output: {1,1,1,1}
- * */
- public int[] freq(int a[]){
- //Dichiarazione
- int i=0;
- int m=0;
- int k=0;
- //Ordinamento BubbleSort
- for(i=0;i<a.length-1;i++){ ///il ciclo si ripeterà finche l'array non sarà visualizzato del tutto
- if(a[i]>a[i+1]){///se il numero accanto è maggiore del numero precedente significa che l'array è in ordine crescente per il momento
- //System.out.println(a[i]+">"+a[i+1]);
- //XOR trick, scambio i valori senza dichiare una varibile di supporto
- a[i] ^= a[i+1];
- a[i+1] ^= a[i];
- a[i] ^= a[i+1];
- i=0; ///riparto da capo
- }
- }
- //Conto i numeri uguali
- for(i=0;i<a.length-1;i++){
- k++;
- if(a[i]!=a[i+1]){a[m]=k;m++;k=0;}
- }
- a[m]=k+1;
- //Creazione di nuovo array per la soluzione
- int[] b = new int[m+1];
- while(m>=0) {
- b[m]=a[m];
- m--;
- }
- System.out.println(Arrays.toString(b)); //Stampa il risultato velocemente
- return b;
- }
- /****|Unique|****//*
- * scrivere un metodo, chiamato unique, che dato in input un array a di numeri interi positivi (eventualmente vuoto), restituisca l'array (eventualmente vuoto) contenente gli elementi di a che appaiono una sola volta
- * Esempi
- Input: {32,23,12,23,15,32}
- Output: {12,15}
- Input: {127,34,45,56,34,127,23,45,12,56,23}
- Output: {12}
- Input: {20,11,15,41,23}
- Output: {20,11,15,41,23}
- Input: {127,34,45,56,34,127,23,45,12,56,23,12}
- Output: {}
- Input: {}
- Output: {}
- * */
- public int[] unique(int a[]){
- int i; //contatore a[]
- int j; //contatore a[]
- int m=0; //lunghezza nuovo array b[]
- //Controllo Array
- for(j=0;j<a.length;j++){
- if(a[j]!=-1){
- for(i=0;i<a.length;i++){
- if(a[j]==a[i] && i!=j)
- a[j]=a[i]=-1; //levo i due valori uguali
- }
- if(a[j]!=-1) m++;
- }
- }
- //Creazione di nuovo array per la soluzione
- int[] b = new int[m];
- for(i=a.length-1;i>0;i--){
- if(a[i]!=-1){b[--m]=a[i];}
- }
- System.out.println(Arrays.toString(b)); //Stampa il risultato velocemente
- return b;
- }
- public int scalarProduct(int[] a, int[] b) {
- int len=a.length ;
- int sum=0;
- while(len--!=0) sum+=a[len]*b[len];
- System.out.println("la somma è "+sum);
- return sum;
- }
- }
Add Comment
Please, Sign In to add comment