冒泡排序
冒泡排序是通过不断的比较相邻的两个元素。如果顺序不对,就将他们交换,直到所有的元素都不再需要交换,就完成了排序。
算法描述(以升序为例)
- 比较相邻的两个元素,如果第一个大于第二个,就交换它们;
- 对每一对相邻元素用1中的方式处理,直到数组的结尾,此时,最大的元素应该在最后边。
- 对数组再次用1、2的方式遍历,除了最后一个元素。
- 重复1-3,直到排序完成。
算法可以用以下的动图来表示:
算法代码
public void sort(int[] arr, int n) {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n-1-i; j++) {
if(arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}