将第一个值和后面的值,挨个比较,如果手里的值比序列的值小,就交换数据,拿新的数字继续比较,直到最后。
再将第二个值和后面的值,挨个比较。
循环往复,排序完成。

int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
        for (int i = 0;i < ns.length;i++){
            for(int j = i+1;j < ns.length;j++){
                if (ns[i] > ns[j]){
                    //交换ns[i]和ns[j]
                    int tmp = ns[j];
                    ns[j] = ns[i];
                    ns[i] = tmp;
                }
            }
        }
        System.out.println(Arrays.toString(ns));
廖雪峰Java1-4数组操作-2数组排序

使用jdk的Arrays.sort()直接排序

sort对大数组进行快速排序,对小数组仍使用冒泡排序

int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
        Arrays.sort(ns);
        System.out.println(Arrays.toString(ns));
廖雪峰Java1-4数组操作-2数组排序

查看源码

使用command+鼠标左击,即可查看源码。
如果没有jdk源码,只要将Attach Source——External Location添加jdk源码即可。
windows:在jdk的根目录下
Mac:jdk1.8.0_131.jdk/Contents/Home/下

总结

  • 常用的排序算法:冒泡排序、比较排序、快速排序
  • 冒泡排序使用两层for循环实现
  • 交换两个变量的值需要通过一个临时变量
  • 可以直接使用jdk的Arrays.sort()排序
  • ctrl+左键/command+左键,快速查看源码
  • 对数组进行排序,会修改数组本身。

相关文章:

  • 2021-12-23
  • 2021-08-25
  • 2021-11-04
  • 2021-09-20
  • 2021-06-19
  • 2021-08-18
  • 2021-06-19
  • 2021-08-01
猜你喜欢
  • 2021-12-25
  • 2021-11-30
  • 2021-12-01
  • 2021-10-14
  • 2021-12-03
  • 2021-11-13
  • 2021-07-28
相关资源
相似解决方案