一.算法思想
对数组的所有元素进行一次遍历,每次遍历将相邻的两个元素进行比较,若为逆序,则交换两个数;因此每次遍历都是将当前未排序的数里面的最大或者最小的数放到最前面。
二.算法本质
算法过程需要两个for循环进行控制,第一层for循环i:0~n-1负责控制向前推进遍历比较;第二层for循环:j:0~A.len-i(或者j:A.len~i) 负责控制每次的比较范围,以及进行相邻元素的比较:if(A[j]<A[j+1]){交换;}.如此,对应每个i的遍历都将当前未排序的最大或者最小元素放到最前面,从而实现排序。
三.代码实现
public void buble_sort(int[] A)
{
for(int i=0;i<A.length;i++)
for(int j=0;j<A.length-i;j++) // for(int j=A.length-1;j>i;j--)
{
if(A[j<A[j-1]])
{
int t=A[j];
A[j]=A[j-1];
A[j-1]=t;
}
}
}