java数组元素的排序_java-以升序对数组的元素进行排序

我正在尝试按升序对数组进行排序.由于某种原因,它仅执行一次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.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;

}

}

解决方法:

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;

}

标签:arrays,java,sorting

来源: https://codeday.me/bug/20191027/1946729.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值