博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组排序 (选择排序、冒泡排序、插入排序、希尔排序)
阅读量:4959 次
发布时间:2019-06-12

本文共 2364 字,大约阅读时间需要 7 分钟。

选择排序

package com.Java;

public class ArraySortSelect {
public void selectSort(int [] arr){//定义一个选择排序的方法
  for (int i = 0; i < arr.length-1; i++) {
    for (int j = i+1; j < arr.length; j++) {
      if (arr[i]>arr[j]) {
        int temp = arr[i] ;
        arr[i] = arr[j];
        arr[j] = temp ;
      }
    }
  }
}
public static void main(String[] args) {
  ArraySortSelect a = new ArraySortSelect() ;//创建一个对象,对象名为a
  int [] arr2 = {9,6,3,8,5,2,7,4,1,0};
  a.selectSort(arr2) ;//对象a调用冒泡排序的方法对arr2排序
  for (int i = 0; i < arr2.length; i++) {
  System.out.print(arr2[i]+" ");
  }
}
}

 

冒泡排序

package com.Java;

public class ArraySortBubble {
  public void bubbleSort(int arr []){
    for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr.length-i-1; j++) {
      if (arr[j]>arr[j+1]) {
        int temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp ;
      }
    }
  }
}
public static void main(String[] args) {
  int [] arr2 = {9,6,3,8,5,2,7,4,1,0} ;
  ArraySortBubble m = new ArraySortBubble();
  m.bubbleSort(arr2);
  for (int i = 0; i < arr2.length; i++) {
    System.out.print(arr2[i]+" ");
  }
}
}

 

插入排序

package com.Java;

public class ArraySortInsert {
public void insertSort(int [] arr){
  for(int i=1;i<arr.length;i++){
    for(int j=i;j>0;j--){
      if (arr[j-1]>arr[j]){
        int temp=arr[j-1];
        arr[j-1]=arr[j];
        arr[j]=temp;
      }
    }
  }
}
public static void main(String[] args) {
  int [] arr2 = {9,6,3,8,5,2,7,4,1,0} ;
  ArraySortInsert m = new ArraySortInsert();
  m.insertSort(arr2);
  for (int i = 0; i < arr2.length; i++) {
    System.out.print(arr2[i]+" ");
   }
}
}

 

希尔排序

package com.Java;

public class ArraySortShell {
public static void main(String[] args) {
  int[] i = { 10, 5, 6, 12, 4, 9, 3, 23, 39, 403, 596, 87 };

  System.out.println("----希尔(Shell)排序的结果:"); 

  shell(i);

}

public static void shell(int[] x) {

  for (int increment = x.length / 2; increment > 0; increment /= 2) {   // 分组 
    for (int i = increment; i < x.length; i++) {   // 每个组内排序 
      int temp = x[i];
      int j = 0;
      for (j = i; j >= increment; j -= increment) {
        if (temp < x[j - increment]) {
        x[j] = x[j - increment];
      } else {
        break;
        }
      }
      x[j] = temp;
    }
  }
  for (int i : x) {
  System.out.print(i + " ");
  }
}
}

 

转载于:https://www.cnblogs.com/ljwa/p/6082468.html

你可能感兴趣的文章
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
宏观经济
查看>>
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
iTextSharp带中文转换出来的PDF文档显示乱码
查看>>
组件:slot插槽
查看>>
走进C++程序世界------异常处理
查看>>
Nginx配置文件nginx.conf中文详解(转)
查看>>
POJ 1988 Cube Stacking
查看>>
POJ 1308 Is It A Tree?(并查集)
查看>>
N进制到M进制的转换问题
查看>>
Android------三种监听OnTouchListener、OnLongClickListener同时实现即其中返回值true或者false的含义...
查看>>
MATLAB实现多元线性回归预测
查看>>
Mac xcode 配置OpenGL
查看>>
利用sed把一行的文本文件改成每句一行
查看>>