Tri V. Java, Comment puis-je améliorer le code?

Il s'agit d'un code que j'ai pour mon programme de tri, je veux savoir s'il existe un moyen d'améliorer le code sans utiliser de méthodes ou de classes supplémentaires.


public class Selection_Sort {


public static void main/String[] args/ {
int arr[]={234,151,123,4,5342,76,48};
int min=0; int temp;
for/int i=0;i<=arr.length-1;i++/{
min=i;
for /int k=i+1;k<arr.length;k++ "="" ;="" <="" arr[i]="arr[k];" arr[j]+"="" arr[k]="temp;" arr[k]<arr[i]="" code]="" div="" for="" if="" int="" j="0;j&lt;=arr.length-1;j++/" system.out.println="" temp="arr[i];" {="" }="" }[="">
<div class="answer_text">

[code]public static void main/String[] args/ {
int arr[]={234,151,123,4,5342,76,48};
int arrLength = arr.length;
for/int i=0;i<arrlength-1;i++ !="min/" "="" ;="" <="" arr[i]="arr[min];" arr[j]+"="" arr[k]<arr[min]="" arr[min]="temp;" code]="" div="" for="" i="" if="" int="" j="0;j&lt;arrLength;j++/" k="i+1;k&lt;arrLength;k++/{" min="k;" system.out.println="" temp="arr[i];" {="" }="" }[="">
<div class="answer_text">
La valeur de la variable locale min non utilisé

à &lt;= arr.length-1

--&gt;


[code]k &lt; arr.length


</div>
<div class="answer_text">
Utilise le


class Selection {
public static void main/String[] args/ {
int arr[]={234,151,123,4,5342,76,48}; /* arr[0] to arr[n-1] is the array to sort */
int lowest, i, j;
for/i = 0 ; i &lt; arr.length-1; i++/ { /* advance the position through the entire array */
lowest = i; /* assume the min is the first element */
for/j = i+1 ; j &lt; arr.length; j++/ { /* if this element is less, then it is the new minimum */
if/arr[j] &lt; arr[lowest]/ {
lowest = j; /* found new minimum; remember its index */
}
}
if/lowest != i/ { /* lowest is the index of the minimum element. Swap it with the current position */
int temp = arr[i];
arr[i] = arr[lowest];
arr[lowest] = temp;
}
}
for /int k = 0; k &lt;= arr.length-1 ; k++/ {
System.out.println/arr[k] + " "/;
}
}
}


Ceci est un algorithme pour trier la sélection que vous avez spécifiée.
</div>
<div class="answer_text">
On dirait que vous utilisez un algorithme bubblesort, qui est très lent. Si vous souhaitez améliorer votre code, je vous recommanderais d'utiliser un tel algorithme comme ripplesort ou quicksort.
</div>
<div class="answer_text">
Un peu d'amélioration devrait être si :


int arrayLength = arr.length; 
// Then use it in conditional statement of for loop.


Donc, cela ne causera pas la longueur de la longueur
Array

À chaque fois dans le cycle. Pour un petit nombre de cycles, il n'affecte pas de manière significative, mais contribuera à réduire le temps lorsque les cycles sont plus grands ou le nombre d'itérations de cycle.
</div>
<div class="answer_text">
Voici la mise en œuvre initiale de la sélection du choix. La mise en œuvre est en question ne doit pas utiliser min Effectuer un fonctionnement d'échange.


public static void sort/int[] arr/ {
int min=-1;

for /int i = 0; i &lt; arr.length; i++/ {
min = i;
for /int j = i + 1; j &lt; arr.length; j++/ {
if /arr[min] &gt; arr[j]/ {
min = j;
}
}
if /min != i/ {
int temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
}


</div>
<div class="answer_text">
Sans méthode d'écriture d'un programme java Par sélection, le tri peut être encombrant. Donc, voici un code improvisé.


public class JavaSelectionSort 
{
public static int[] selectionSort/int[] arr/
{
// selection sort array java
for/int a = 0; a &lt; arr.length - 1; a++/
{
int index = a;
for/int b = a + 1; b &lt; arr.length; b++/
if/arr[b] &lt; arr[index]/
index = b;

int smallNumber = arr[index];
arr[index] = arr[a];
arr[a] = smallNumber;
}
return arr;
}

public static void main/String[] args/
{
int[] arrOne = {10, 23, 32, 14, 27, 45, 36, 21};
int[] arrTwo = selectionSort/arrOne/;
for/int x: arrTwo/
{
System.out.print/x/;
System.out.print/", "/;
}
}
}


Pour plus d'informations sur la sélection de la sélection, voir
http://www.flowerbrackets.com/ ... java/
Ressource.
</div>
<div class="answer_text">

public class JavaApplication55 {

public static void main/String[] args/ {

int[] array ={234,435,567,768,123,456,789,789,5670,6789};
for/int j =0;j&lt; array.length;j++/{
for/int i =j+1;i &lt; array.length;i++ /{
int temp;

if/array[j]&gt;array[i]/{

temp =array[j];
array[j] =array[i];

array[i] =temp;

}

else{}


}}





for/int k =0;k&lt; array.length;k++/{

System.out.println/array[k]/;

}

}
enter code here

}


</div>
</arrlength-1;i++></div></arr.length;k++>
Invité:

Damien

Confirmation de:

public static void main/String[] args/ {
int arr[]={234,151,123,4,5342,76,48};
int arrLength = arr.length;
for/int i=0;i<arrlength-1;i++ !="min/" "="" ;="" <="" arr[i]="arr[min];" arr[j]+"="" arr[k]<arr[min]="" arr[min]="temp;" code]="" div="" for="" i="" if="" int="" j="0;j&lt;arrLength;j++/" k="i+1;k&lt;arrLength;k++/{" min="k;" system.out.println="" temp="arr[i];" {="" }="" }[="">
<div class="answer_text">
La valeur de la variable locale min non utilisé

à &lt;= arr.length-1

--&gt;


[code]k &lt; arr.length


</div>
<div class="answer_text">
Utilise le


class Selection {
public static void main/String[] args/ {
int arr[]={234,151,123,4,5342,76,48}; /* arr[0] to arr[n-1] is the array to sort */
int lowest, i, j;
for/i = 0 ; i &lt; arr.length-1; i++/ { /* advance the position through the entire array */
lowest = i; /* assume the min is the first element */
for/j = i+1 ; j &lt; arr.length; j++/ { /* if this element is less, then it is the new minimum */
if/arr[j] &lt; arr[lowest]/ {
lowest = j; /* found new minimum; remember its index */
}
}
if/lowest != i/ { /* lowest is the index of the minimum element. Swap it with the current position */
int temp = arr[i];
arr[i] = arr[lowest];
arr[lowest] = temp;
}
}
for /int k = 0; k &lt;= arr.length-1 ; k++/ {
System.out.println/arr[k] + " "/;
}
}
}


Ceci est un algorithme pour trier la sélection que vous avez spécifiée.
</div>
<div class="answer_text">
On dirait que vous utilisez un algorithme bubblesort, qui est très lent. Si vous souhaitez améliorer votre code, je vous recommanderais d'utiliser un tel algorithme comme ripplesort ou quicksort.
</div>
<div class="answer_text">
Un peu d'amélioration devrait être si :


int arrayLength = arr.length; 
// Then use it in conditional statement of for loop.


Donc, cela ne causera pas la longueur de la longueur
Array

À chaque fois dans le cycle. Pour un petit nombre de cycles, il n'affecte pas de manière significative, mais contribuera à réduire le temps lorsque les cycles sont plus grands ou le nombre d'itérations de cycle.
</div>
<div class="answer_text">
Voici la mise en œuvre initiale de la sélection du choix. La mise en œuvre est en question ne doit pas utiliser min Effectuer un fonctionnement d'échange.


public static void sort/int[] arr/ {
int min=-1;

for /int i = 0; i &lt; arr.length; i++/ {
min = i;
for /int j = i + 1; j &lt; arr.length; j++/ {
if /arr[min] &gt; arr[j]/ {
min = j;
}
}
if /min != i/ {
int temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
}


</div>
<div class="answer_text">
Sans méthode d'écriture d'un programme java Par sélection, le tri peut être encombrant. Donc, voici un code improvisé.


public class JavaSelectionSort 
{
public static int[] selectionSort/int[] arr/
{
// selection sort array java
for/int a = 0; a &lt; arr.length - 1; a++/
{
int index = a;
for/int b = a + 1; b &lt; arr.length; b++/
if/arr[b] &lt; arr[index]/
index = b;

int smallNumber = arr[index];
arr[index] = arr[a];
arr[a] = smallNumber;
}
return arr;
}

public static void main/String[] args/
{
int[] arrOne = {10, 23, 32, 14, 27, 45, 36, 21};
int[] arrTwo = selectionSort/arrOne/;
for/int x: arrTwo/
{
System.out.print/x/;
System.out.print/", "/;
}
}
}


Pour plus d'informations sur la sélection de la sélection, voir
http://www.flowerbrackets.com/ ... java/
Ressource.
</div>
<div class="answer_text">

public class JavaApplication55 {

public static void main/String[] args/ {

int[] array ={234,435,567,768,123,456,789,789,5670,6789};
for/int j =0;j&lt; array.length;j++/{
for/int i =j+1;i &lt; array.length;i++ /{
int temp;

if/array[j]&gt;array[i]/{

temp =array[j];
array[j] =array[i];

array[i] =temp;

}

else{}


}}





for/int k =0;k&lt; array.length;k++/{

System.out.println/array[k]/;

}

}
enter code here

}


</div>
</arrlength-1;i++>

Christian

Confirmation de:

La valeur de la variable locale min non utilisé

à <= arr.length-1

-->


k < arr.length

Hannah

Confirmation de:

Utilise le


class Selection {
public static void main/String[] args/ {
int arr[]={234,151,123,4,5342,76,48}; /* arr[0] to arr[n-1] is the array to sort */
int lowest, i, j;
for/i = 0 ; i < arr.length-1; i++/ { /* advance the position through the entire array */
lowest = i; /* assume the min is the first element */
for/j = i+1 ; j < arr.length; j++/ { /* if this element is less, then it is the new minimum */
if/arr[j] < arr[lowest]/ {
lowest = j; /* found new minimum; remember its index */
}
}
if/lowest != i/ { /* lowest is the index of the minimum element. Swap it with the current position */
int temp = arr[i];
arr[i] = arr[lowest];
arr[lowest] = temp;
}
}
for /int k = 0; k <= arr.length-1 ; k++/ {
System.out.println/arr[k] + " "/;
}
}
}


Ceci est un algorithme pour trier la sélection que vous avez spécifiée.

Denis

Confirmation de:

On dirait que vous utilisez un algorithme bubblesort, qui est très lent. Si vous souhaitez améliorer votre code, je vous recommanderais d'utiliser un tel algorithme comme ripplesort ou quicksort.

Charles

Confirmation de:

Un peu d'amélioration devrait être si :


int arrayLength = arr.length; 
// Then use it in conditional statement of for loop.


Donc, cela ne causera pas la longueur de la longueur
Array

À chaque fois dans le cycle. Pour un petit nombre de cycles, il n'affecte pas de manière significative, mais contribuera à réduire le temps lorsque les cycles sont plus grands ou le nombre d'itérations de cycle.

Christian

Confirmation de:

Voici la mise en œuvre initiale de la sélection du choix. La mise en œuvre est en question ne doit pas utiliser min Effectuer un fonctionnement d'échange.


public static void sort/int[] arr/ {
int min=-1;

for /int i = 0; i < arr.length; i++/ {
min = i;
for /int j = i + 1; j < arr.length; j++/ {
if /arr[min] > arr[j]/ {
min = j;
}
}
if /min != i/ {
int temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
}

Cyprien

Confirmation de:

Sans méthode d'écriture d'un programme java Par sélection, le tri peut être encombrant. Donc, voici un code improvisé.


public class JavaSelectionSort 
{
public static int[] selectionSort/int[] arr/
{
// selection sort array java
for/int a = 0; a < arr.length - 1; a++/
{
int index = a;
for/int b = a + 1; b < arr.length; b++/
if/arr[b] < arr[index]/
index = b;

int smallNumber = arr[index];
arr[index] = arr[a];
arr[a] = smallNumber;
}
return arr;
}

public static void main/String[] args/
{
int[] arrOne = {10, 23, 32, 14, 27, 45, 36, 21};
int[] arrTwo = selectionSort/arrOne/;
for/int x: arrTwo/
{
System.out.print/x/;
System.out.print/", "/;
}
}
}


Pour plus d'informations sur la sélection de la sélection, voir
http://www.flowerbrackets.com/ ... java/
Ressource.

Gaetan

Confirmation de:

public class JavaApplication55 {

public static void main/String[] args/ {

int[] array ={234,435,567,768,123,456,789,789,5670,6789};
for/int j =0;j< array.length;j++/{
for/int i =j+1;i < array.length;i++ /{
int temp;

if/array[j]>array[i]/{

temp =array[j];
array[j] =array[i];

array[i] =temp;

}

else{}


}}





for/int k =0;k< array.length;k++/{

System.out.println/array[k]/;

}

}
enter code here

}

Pour répondre aux questions, connectez-vous ou registre