请帮助我理解这两种优化冒泡排序方法背后的逻辑:
方法一
public static void MyBubbleSort()
{
for (int i=0; i<list.length; i++)
{
boolean is_sorted = true;
for (int j=0; j<list.length-1; j++)
{
if (list[j]>list[j+1])
{
int a = list[j];
list[j]=list[j+1];
list[j+1]=a;
is_sorted = false;
System.out.println ("Ascending order:"+Arrays.toString(list))}
方法二
在这里,我不明白 -i 在内部循环中在做什么。
public static void MyBubbleSort()
{
for (int i=0; i<list.length; i++)
{
for (int j=0; j<list.length-1-i; j++) // <-- here
{
if (list[j]>list[j+1])
{
int a = list[j];
list[j]=list[j+1];
list[j+1]=a;
System.out.println ("Ascending order:"+Arrays.toString(list));
相关分类