当两个循环都从0开始并且两个索引之间的比较具有相同的值时,它是如何工作的
public class BubbleSort {
public static void main(String[] args)
{
int arr[]={5,1,2,1,1,4,4,4,4,4,3};
for(int i=0;i<arr.length;i++)//i=0
{
for(int j=0;j<arr.length;j++)//j=0
{
if(arr[i]>arr[j])//i=5>j=5
{
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(int k=0;k<arr.length;k++)
System.out.println(arr[k]);
}
}
}
答案 0 :(得分:0)
因此,如果我尝试总结您的代码:
有两个循环(带有迭代器i和j)
在第一个for循环中,我们一个接一个地获取数组的每个元素,然后将该元素(我们称其为“当前元素”)与其他元素(包括“当前元素”)进行比较,因为在第二个for循环中,i和j可能具有相同的值,即i = 0,j = 0; i = 1,j = 1)。
现在,在此比较中,如果“当前元素”大于我们在第二个for循环中比较的元素,则交换该元素。
因此,随着执行的不断进行,具有较大值的元素将移向数组的右侧,而具有较小值的元素将移至数组的左侧。
之所以称为气泡排序,是因为元素已排序并像气泡一样向上移动到数组。
您可以在此处找到更多信息:https://www.hackerearth.com/practice/algorithms/sorting/bubble-sort/tutorial/