1、直接排序:  

public static void selectSort(int[] arr) {
for (int x = 0; x < arr.length - 1; x++) {
for (int y = x + 1; y < arr.length; y++) {
if (arr[x] > arr[y]) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}

说明:双重for循环,数组的第一个数a[0]和后面所有的数进行比对,得到最小的数,然后第二个数a[1]和后面所有的数进行比对,得到次小的数。。。反复后得到排序后的结果。

2、冒泡排序

  (1)、

 public static void bubbleSort(int[] arr) {

          for(int x=0; x<arr.length-1; x++) {

              for(int y=0; y<arr.length-x-1; y++) {

                 if(arr[y]>arr[y+1]){

                     int temp = arr[y];

                     arr[y] = arr[y+1];

                     arr[y+1] = temp;

                 }

              }

          }

   }

  (2)、

 public static void sort(int[] a) {
    int temp = 0;
    for (int i = a.length - 1; i > 0; --i){
      for (int j = 0; j < i; ++j){
        if (a[j + 1] < a[j]){
          temp = a[j];
          a[j] = a[j + 1];
          a[j + 1] = temp;
        }
      }
    }
  }

说明:冒泡排序是两两之间进行对比,   如:4.2.5.1.7   :第一次内循环、4和2比-->2,4 、4和5比-->4,5、5和1比-->5,1、5和7比-->5,7。

  这样最大的一个数就到了数组的最后,第二次进行比对的时候只要比数组长度-2次,就是<arr.length-1,即可得到次大的数,放在倒数第二的位置,如此反复得到排序后的数组。

3、插入排序:

public static void insertSort(int[] a) {
for (int i = 1; i < a.length; i++) {
for (int j = i; j > 0; j--) {
if (a[j] < a[j - 1]) {
int temp = a[j - 1];
a[j - 1] = a[j];
a[j] = temp;
}else break;
}
}
}

说明:插入排序和打牌一样,拿到一个数和前面已有的数进行对比,比前面的数小就放到前面,举例:4,2,5,1,7 :

  第一次内循环、拿到数a[1]=2,和a[0]=4进行对比,2小,换位置;

  第二次内循环、拿到数5,和4比,位置不变,if判断为false,则break,跳出内循环,进行下一次;

  第三次内循环、拿到数1,和5比,交换位置,1在和4比,交换位置,最后和2比,再次交换位置,得到结果,1,2,4,5,7;

  ...

 

java中数组的排序,直接排序,冒泡排序,插入排序的更多相关文章

  1. JAVA 中数组的几种排序方法

    1.数组的冒泡排序   public void bubbleSort(int a[]) {      int n = a.length;      for (int i = 0; i < n - ...

  2. Java中数组要点总结

    1.数组是基本数据类型和字符串类型的容器(引用数据类型),而集合是类数据类型的容器: 2.数组定义的格式: (1)一般格式: 元素类型[] 数组名 = new 元素类型[元素个数或者数组长度]: 其中 ...

  3. java中数组以及集合

    java中数组: 数组在Java里是一种特殊类型,有别于普通的“类的实例”的对象.但实际数组也是一种对象类型,int[]a = new int[5]  a是在java栈中分配的引用变量,类型是int[ ...

  4. java中数组的相关知识

      1. 2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages; ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[ ...

  5. Java中数组的特性

    转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...

  6. 在java 中,数组与 List<T> 类型的相互转换

    在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 ...

  7. Java中数组的初始化方式

    Java中数组的初始化方式    初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...

  8. java中数组复制的两种方式

    在java中数组复制有两种方式: 一:System.arraycopy(原数组,开始copy的下标,存放copy内容的数组,开始存放的下标,需要copy的长度); 这个方法需要先创建一个空的存放cop ...

  9. Java中数组的插入,删除,扩张

    Java中数组是不可变的,但是可以通过本地的arraycop来进行数组的插入,删除,扩张.实际上数组是没变的,只是把原来的数组拷贝到了另一个数组,看起来像是改变了. 语法: System.arrayc ...

  10. java中数组、集合、字符串之间的转换,以及用加强for循环遍历

    java中数组.集合.字符串之间的转换,以及用加强for循环遍历: @Test public void testDemo5() { ArrayList<String> list = new ...

随机推荐

  1. JavaScript 中实现继承的方式(列举3种在前一章,我们曾经讲解过创建类的最好方式是用构造函数定义属性,用原型定义方法。)

    第一种:对象冒充 function ClassA(sColor) { this.color = sColor; this.sayColor = function () { alert(this.col ...

  2. 我收藏的Blog

    收集我开发过程中遇见的优秀Blog iOS圈 王巍-强烈推荐 唐巧-强烈推荐 YYKit作者-强烈推荐 Imrazor's Blog Ryan's Zone http://www.cnblogs.co ...

  3. CSS-学习笔记六

    1. 自适应,响应式布局 2. pure 3. Animate

  4. sublime text 我的常用配置

    { "color_scheme": "Packages/Color Scheme - Default/IDLE.tmTheme", "font_fac ...

  5. linux动态链接库---一篇讲尽

    一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.s ...

  6. DDR工作原理(转)

    源:DDR工作原理 DDR SDRAM全称为Double Data Rate SDRAM,中文名为“双倍数据流SDRAM”.DDR SDRAM在原有的SDRAM的基础上改进而来.也正因为如此,DDR能 ...

  7. Xcode遇到couldn’t be opened because you don’t have permission to view it.解决方法

    今天删除app里面第三方类库的之后,xcode在编译的时候出现了这个问题. (无法打开,因为您没有权限查看它) 问题刚出现的时候,可以尝试一下在xcode上方product选项clean一下. cle ...

  8. PowerShell学习小结

    1. 获取所有别名信息Get-Alias 2. 获取指定别名信息Get-Alias xx 3. 通过command name获得指定别名信息Get-Alias -Definition xx-xxx 4 ...

  9. HTML CSS基础(二)

    块元素和行内元素 HTML元素根据表现形式,可以分为2类: (1)块元素(block): (2)行内元素(inline): 任何HTML元素都属于这两类中的其中一类. 2.块元素特点: (1)独占一行 ...

  10. HDU 1813 Escape from Tetris

    TMDTMD IDA*没跑了.什么是IDA*? 就是迭代深搜+A*估个价. 然而为什么调了一天? n<=2的时候我输出了东西.... 看了一天. #include<iostream> ...