按升序对数组的元素进行排序

我正在尝试按升序对数组进行排序。 由于某种原因,它只执行一次for循环。 为什么在一切都被排序之前它不会继续下去?

它是一个赋值,所以我不允许使用现有的排序方法。 我应该自己写这个方法。

public class Sudoku { public static void main(String[] args) { int[] a = { 1, 4, 3, 5, 2 }; System.out.println(Arrays.toString(sortArray(a))); } public static int[] sortArray(int[] nonSortedArray) { int[] sortedArray = new int[nonSortedArray.length]; int temp; for (int i = 0; i  nonSortedArray[i + 1]) { temp = nonSortedArray[i]; nonSortedArray[i] = nonSortedArray[i + 1]; nonSortedArray[i + 1] = temp; sortedArray = nonSortedArray; } } return sortedArray; } } 

 public static int[] sortArray(int[] nonSortedArray) { int[] sortedArray = new int[nonSortedArray.length]; int temp; for (int j = 0; j < nonSortedArray.length - 1; j++) {// added this for loop, think about logic why do we have to add this to make it work for (int i = 0; i < nonSortedArray.length - 1; i++) { if (nonSortedArray[i] > nonSortedArray[i + 1]) { temp = nonSortedArray[i]; nonSortedArray[i] = nonSortedArray[i + 1]; nonSortedArray[i + 1] = temp; sortedArray = nonSortedArray; } } } return sortedArray; } 

输出: [1,2,3,4,5]

要么

 //making use of j public static int[] sortArray(int[] nonSortedArray){ int[] sortedArray = new int[nonSortedArray.length]; int temp; for (int i = 0; i <= nonSortedArray.length; i++) { for (int j = i+1; j < nonSortedArray.length; j++) { if (nonSortedArray[i] > nonSortedArray[j]) { temp = nonSortedArray[i]; nonSortedArray[i] = nonSortedArray[j]; nonSortedArray[j] = temp; sortedArray = nonSortedArray; } } } return sortedArray; } 
  arr = new int[Item]; Arrays.sort(arr); 

在java中内置函数以按升序排序数组。

您正尝试使用单个循环对数组进行排序。 您将需要两个循环以确保元素按排序顺序。

 public static int[] sortArray(int[] nonSortedArray) { int[] sortedArray = new int[nonSortedArray.length]; int temp; for (int i = 0; i < nonSortedArray.length-1; i++) { for (int j = i+1; j < nonSortedArray.length; j++) { if (nonSortedArray[i] > nonSortedArray[j]) { temp = nonSortedArray[i]; nonSortedArray[i] = nonSortedArray[j]; nonSortedArray[j] = temp; sortedArray = nonSortedArray; } } } return sortedArray; } 

这将按升序对数组进行排序

 int arr[]={33,3,4,5,1}; Arrays.sort(arr); System.out.println(Arrays.toString (arr)); 

输出将: – [1,3,4,5,33]