您的位置:首页 > 编程语言 > Java开发

Java数组排序(冒泡、选择)

2017-06-12 23:42 316 查看
1.冒泡排序

依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。

public void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {//需要比较几趟
for (int j = 0; j < arr.length - 1 - i; j++) {//每趟需要比较几次
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}


2.选择排序

把第一个元素依次和后面的所有元素进行比较。第一次结束后,就会有最小值出现在最前面。依次类推

public void selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {//需要比较几趟
for (int j = i + 1; j < arr.length; j++) {//每趟需要比较几次
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java