java学习之数组排序
2011-11-25 12:29
453 查看
public class SortAll {
/**
* 冒泡排序,选择排序,插入排序,希尔(Shell)排序 Java的实现
*/
public static void main(String[]
args) {
int[] i = { 30, 2, 58, 12, 4, 78, 3, 23, 32, 43, 96,
187 };
System.out.println("----冒泡排序的结果:");
maoPao(i);
System.out.println();
System.out.println("----选择排序的结果:");
xuanZe(i);
System.out.println();
System.out.println("----插入排序的结果:");
chaRu(i);
System.out.println();
System.out.println("----希尔(Shell)排序的结果:");
shell(i);
}
// 冒泡排序
public static void maoPao(int[]
x) {
for (int i
= 0; i < x.length; i++) {
for (int j = i + 1;
j < x.length; j++) {
if (x[i] > x[j]) {
int temp = x[i];
x[i] = x[j];
x[j] = temp;
}
}
}
for (int i : x) {
System.out.print(i + " ");
}
}
// 选择排序
public static void xuanZe(int[]
x) {
for (int i
= 0; i < x.length; i++) {
int lowerIndex = i;
// 找出最小的一个索引
for (int j = i + 1;
j < x.length; j++) {
if (x[j] < x[lowerIndex]) {
lowerIndex = j;
}
}
// 交换
int temp = x[i];
x[i] = x[lowerIndex];
x[lowerIndex] = temp;
}
for (int i
: x) {
System.out.print(i + " ");
}
}
// 插入排序
public static void chaRu(int[]
x) {
for (int i
= 1; i < x.length; i++) {// i从一开始,因为第一个数已经是排好序的啦
for (int j = i; j > 0;
j--) {
if (x[j] < x[j - 1]) {
int temp = x[j];
x[j] = x[j - 1];
x[j - 1] = temp;
}
}
}
for (int i : x) {
System.out.print(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 + " ");
}
}
}
相关文章推荐
- java学习3-冒泡排序对数组进行排序
- 数组排序、递归——(Java学习笔记二)
- java学习之旅62--数组的拷贝_排序_二分法_命令行参数_增强for循环
- java学习之数组排序一:选择排序
- Java学习之数组1(1.数组的声明;2.元素为引用数据类型的数组;3.关于main方法里的String[] args;4.数组排序;5.数3退1 数组算法,(用数组模拟链表);6数组查找之二分法;7数组的拷贝)
- java学习(2)数组详解(包括数据的初始化、比较、排序、重要方法)
- [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组
- Java基础学习笔记 -- 10(数组排序)
- Java学习笔记之数组排序算法
- Java学习笔记(五)--二维数组 冒泡排序 选择排序 Arrays数组工具类
- 编写学习的java几种常用数组的排序方法,给大家分享一下
- java学习_05_数组、排序、查找
- JAVA基础day04 数组学习 排序和查找基本算法
- 【幻化万千戏红尘】qianfengDay11-java基础学习:数组,排序,算法
- Java基础学习应用_数组常用方法与排序(一)
- Java学习第5天:数组排序的原理解释
- Java学习笔记_6_数组的排序和查找
- java学习4--Java 的常用包与数组的复制与排序
- 黑马程序员--学习笔记-- Java中常见的数组排序方式(一)
- 黑马程序员——Java学习笔记——数组的排序和查找