`
Wang_Jianxin
  • 浏览: 12724 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java简单排序方法总结

阅读更多
      JAVA数组排序有好多种,以下简单对冒泡排序(bubble—srot)、插入排序(insertion-sort)、选择排序(selection-sort)加以描述。
       由于JAVA数组声明书写的规范很灵活,导致经常会犯一些不起眼错误。


        //冒泡排序
        //冒泡排序方法
public int[] bubble_sort(int[] array){

    for (int i=0;i<array.lengh-1;i++){   //注意:最后一个元素不用再和自己做比较
           for (int j=i+1;j<array.lengh;j++){   //得到最后小数就把它放在
               if (array[i]>array[j]){          //最左边
                  int temp = array[i];
                  array[i] = array[j];
                  array[j] = temp;
            }
       }
   }

return array;     //返回已经排序后的数组
}

冒泡排序总结:数组是连续的不间断的一组数据,比较“第一趟”的时候,从数组最左端的数开始依次用这个数和“它”右边数作比较,如果发现有比它小的,立即交换,以保证在最左端的数还是最小的。接着比较“第二趟”的时候,以数组左端第二个数(此时左端的第一个数数已经是整个数组中最小的数了)开始重复上面的比较........直到比较到"array.lengh-1"趟,因为最后两个数比较出大小以后,最后一个数没有必要再和自己比较大小了。此时整个数组排序完毕!!!!数组从左至右数据从小到大。


        //选择排序
        //选择排序其实就是一个“贴标签”的过程
        //选择排序方法
public int[] selection_sort(int[] array){
   for (int i=0;i<array.lengh-1;i++){
        //默认第i个数就是最小的数
       int min_index = i;    

         for (int j=i+1;j<array.lengh;j++){
         //找到比“默认”最小数还小的数的时候把“最小数的标签"贴在新的最小数背上
               if (array[min_index]>array[j]) 
                  min_index = j;         
}
   //直到这一趟比较完所有数时,把最小数放到最左边,接着又来比较其他的数
             int temp = array[i];
             array[i] = array[j];
             array[j] = temp;
}
     return array;
}

选择排序总结:排序的关键就是一个贴标签的过程,这个标签上印有"最小数"三个字,比较完一趟时把最小数放在最左边,接着比较下面的数,最后就达到理想的效果了。



    //插入排序
    //何所谓插入排序呢?新来新当兵,比试一番自见分晓,是骡子是马拉出来遛遛就知道了
   
public int[] insertion_sort(int[] array){

     //每一次加入一个新数和原来已经排好序的数比较
   for (int i=1;i<array.lengh;i++)
      for (int j=i;j>0;j--){  //注意:避免数组越界

        //因为在插入新数之前已经是有一部分排好顺序了,所以新数从右往左一旦找到比自己大的数就立即插进去就行了
        if (array[j]<array[j-1])
             int temp = array[j];
             array[j] = array[j-1];
             array[j-1] = temp;
}


return array;
}


插入排序总结:新来新单兵。
分享到:
评论

相关推荐

    Java 排序算法知识点总结.zip

    它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run ...

    史上最全经典排序算法总结(Java实现).zip

    它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run ...

    java 面试题 总结

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...

    java 编程入门思考

    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 ...

    Java语言基础下载

    第一章:Java开始 1 学习目标 1 Java历史 2 Java技术概述 3 Java技术的优点 3 Java虚拟机 4 类加载器 6 Windows环境变量 8 内容总结 13 独立实践 14 第二章: 面向对象概述 15 学习目标 15 面向对象(Object Oriented...

    Java初学者入门教学

    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 ...

    java联想(中文)

    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 ...

    JAVA基础课程讲义

    第一个JAVA程序的总结和提升 20 常用Java开发工具 20 常用dos命令 21 本章笔试作业 21 本章上机操作 21 第二章(1) 编程的基本概念 22 注释 22 标识符 22 关键字/保留字 23 变量(variable) 24 常量(Constant) 25 命名...

    JAVA_Thinking in Java

    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 ...

    Thinking in Java简体中文(全)

    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 ...

    Thinking in Java 中文第四版+习题答案

    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的...

    面试中的排序算法总结

    以下是在编程面试中排名前10的算法相关的概念,通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念:

    Java面试宝典2010版

    43、Java中的异常处理机制的简单原理和应用。 28 44、请写出你最常见到的5个runtime exception。 28 45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm ------------------------------------------------- 本教程由yyc,spirit整理 ------------------------------------------------- “Thinking in Java...

    Think in Java(中文版)chm格式

    2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 ...

    java基础知识

    第一章:开发简单的java应用程序 3 一 JAVA 3 二 Java的三大领域 3 三 开发Java程序的步骤: 3 四 程序的组成部分: 4 五 基本结构 4 六 注释 5 七 命名规范 6 第二章 变量 数据类型和运算符 6 一 单词: 6 二 数据...

    Java数据结构和算法

    Java数据结构和算法总结 精炼。包括:数组于简单排序、栈与队列 、链表、递归、哈希表、高级排序、二叉树、红—黑树、堆、带权图。

    Thinking in Java(中文版 由yyc,spirit整理).chm

    “Thinking in Java”详细目录   写在前面的话 引言 1. 前提 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 ...

Global site tag (gtag.js) - Google Analytics