黑马程序员技术交流社区
标题:
排序的问题
[打印本页]
作者:
梁宝昌
时间:
2014-8-28 20:29
标题:
排序的问题
现在学习到数组 嵌套循环那里 对选择排序和冒泡排序有些混淆 请大神赐教
作者:
她只是过客
时间:
2014-8-28 21:18
这是我做过的一道题,希望对你有帮助,我来理解的话,选择排序就是角标1和2、3、4、5...逐个进行比较,然后判断性的置换,接着就是下一轮,角标2和3、4、5...逐个比较,然后判断性的置换,一直到最后一个角标停止。
冒泡排序就是角标1和2比,然后判断性置换,角标2和3比,判断性置换,角标3和4比.....一直比到长度的次数。
public class Test2 {
public static void main(String[] args) {
// 建立一个数组
int[] arr = { 73, 56, 89, 67, 25, 58, 70, 13 };
// 先输出一次原数组
print(arr);
// 调用冒泡排序
sort(arr);
// 调用选择排序
select(arr);
// 输出排序后的数组
print(arr);
}
// 选择排序
public static void select(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = i; j < arr.length; j++) {
if (arr[i] > arr[j]) {
// 比较大小后进行置换
arr[i] ^= arr[j];
arr[j] ^= arr[i];
arr[i] ^= arr[j];
}
}
}
}
// 冒泡排序
public static void sort(int[] arr) {
for (int i = 0; i < arr.length; 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;
}
}
}
}
// 打印数组
public static void print(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i != arr.length - 1)
System.out.print(arr[i] + ",");
else
System.out.println(arr[i] + "]");
}
}
}
复制代码
代码比较简单,也不多,直接记住固定格式也可以
作者:
冷锋也温柔
时间:
2014-8-31 23:19
这么详细 借用了 谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2