A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 安逸小马 初级黑马   /  2019-6-26 19:49  /  554 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在前两天我们学习了数组,所以在这里我就分享一下自己关于解决数组排序的一些个人的想法:
  数组排序通常就是讲数组按照升序或者降序的方式进行排序,就拿升序为例,以下是我根据老师讲解和自己的想法总结的两种方式的代码:
(1):第一种方式就是通过双重循环找出比sz小的元素,并与之交换元素值,这样就可以把小的元素放在数组的左边并且按照升序的方式进行排列
int[] sz = {1, 5, 8, 3, 89, 57, 64, 25, 6, 9, 56, 75};
for (int i = 0; i < sz.length-1; i++) {
    for (int j = i+1; j < sz.length ; j++) {
        if(sz[j]< sz) {
            int temp = 0;
            temp = sz[j];
            sz[j] = sz;
            sz = temp;
        }
(2): 第二种方式也是通过双重循环,通过将sz[j]于sz[j+1]进行比较,将大的元素值不断地往后移动,最后实现一个升序的排列,
int[] sz = {1, 5, 8, 3, 89, 57, 64, 25, 6, 9, 56, 75};
for (int i = 0; i < sz.length; i++) {
    for (int j = 0; j < sz.length - 1; j++) {
        if(sz[j] > sz[j + 1]) {
            int temp = 0;
            temp = sz[j + 1];
            sz[j + 1] = sz[j];
            sz[j] = temp;
        }
    }
这里要注意的是,两种方式的不同之处在于,第一种方式看着更直观,通过循环比较直接把小的元素放在左边实现升序,而第二种方法则是通过循环比较,每一次都从第一个元素开始进行不断地循环比较将大的元素通过值交换一点点的移到数组的右边从而实现升序,有点类似“蠕动”的方式。 这两种方式总的来说第一种方式更加容易理解,而且程序的运算量要比第二种小一些,很适合初学者使用。         


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马