`
31315474
  • 浏览: 15084 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA中数组排序小结

阅读更多

public class SortAll {   
  
 
/**  
  * 冒泡排序,选择排序,插入排序,希尔(Shell)排序 Java的实现   
  */  
 
public static void main(String[] args) {   
  
int[] i = { 15612493233940359687 };   
  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 
+ " ");   
  }   
 }   
}  

3
0
分享到:
评论
1 楼 chansman 2011-06-17  
java 好象提供了排序方法

相关推荐

    java实现快速排序小结

    它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序的目标。快速排序的平均时间复杂度为O(nlogn),...

    Java数组常用排序算法实例小结

    Java数组常用排序算法实例小结 ...Java数组排序算法有多种实现方式,包括冒泡排序、数组递增排序、快速排序及选择排序等,每种算法都有其优缺点,在实际应用中需要根据具体情况选择合适的排序算法。

    Java数组高级算法与Arrays类常见操作小结【排序、查找】

    Java数组高级算法与Arrays类常见操作小结【排序、查找】 Java数组高级算法与Arrays类常见操作小结是Java数组高级算法的核心内容之一。本文主要介绍了Java数组高级算法与Arrays类常见操作,结合实例形式总结分析了...

    Java排序小结:常用的排序方法

    本篇文章将详细解析Java中常见的排序方法,结合"javaeye 收集的java排序小结"资料,旨在帮助读者理解和掌握这些排序算法。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,通过重复遍历数组,比较...

    常用排序算法小结(附Java实现)

    这篇博客“常用排序算法小结(附Java实现)”提供了一种深入理解并掌握常见排序算法的途径,尤其对于Java开发者来说非常实用。文章可能涵盖了如冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等多种经典...

    java中数组的相关知识小结(推荐)

    在Java编程语言中,数组是一种非常基础且重要的数据结构,用于存储同类型的多个元素。下面是对Java中数组相关知识的详细总结: 1. **数组的声明与初始化** - 在Java中,数组可以通过以下几种方式声明和初始化: -...

    Java数组常见应用详解【创建、遍历、排序、查找】

    创建Java数组可以使用静态初始化和动态初始化,遍历Java数组可以使用普通for循环和增强for循环,排序Java数组可以使用Arrays.sort()方法,查找Java数组可以使用遍历数组的方法,栈可以用于实现递归算法,断点语句和...

    Java实现删除排序数组中重复元素的方法小结【三种方法比较】

    在Java编程中,删除排序数组中的重复元素是一个常见的问题,特别是在数据处理和算法优化的场景。本篇文章将探讨三种不同的方法来实现这个功能,并对比它们的优劣。 首先,第一种方法是通过`ArrayList`来解决。这种...

    Java中集合和数组的排序方式小结

    在Java编程中,排序是常见的操作,涉及到数组和集合。本文将重点介绍如何使用Java标准库中的`java.util.Arrays`和`java.util.Collections`类来对数组和集合进行排序。 首先,`Arrays`类提供了对数组进行排序的功能...

    Java数据结构和算法中文第二版

    Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O表示法 为什么不用数组表示一切? 小结 问题 实验 编程作业 第3章 简单排序 如何排序? 冒泡排序...

    Java 数组元素倒序的三种方式(小结)

    Java 数组元素倒序的三种方式中,方式一的时间复杂度是最低的,但它需要手动实现倒序的逻辑。方式二和方式三则可以使用现有的工具类来实现倒序,但它们的时间复杂度相对较高。因此,在实际开发中,需要根据具体情况...

    Java数据结构和算法(第二版)

    Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O表示法 为什么不用数组表示一切? 小结 问题 实验 编程作业 第3章 简单排序 如何排序? 冒泡排序 选择排序 ...

    Java软件开发实战 Java基础与案例开发详解 4-4 排序算法 共13页.pdf

    ### 小结 以上四种排序算法都是学习和了解排序概念的基础。它们各有优缺点,在不同的应用场景下有着不同的表现。在实际开发过程中,根据具体需求选择合适的排序算法是非常重要的。例如,对于小规模数据集,插入排序...

    Java数据结构和算法中文第二版(1)

    Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O表示法 为什么不用数组表示一切? 小结 问题 实验 编程作业 第3章 简单排序 如何排序? 冒泡...

    Java数据结构和算法

    ### 小结 本文详细介绍了Java中的数组和三种简单的排序算法——冒泡排序、选择排序和插入排序。每种排序算法都有其特点和适用场景。了解这些基本概念和技术对于学习更复杂的算法和数据结构非常有帮助。

    javascript数组操作方法小结和3个属性详细介绍

    在这篇文章中,我们将深入探讨JavaScript数组的创建、元素访问与修改、添加、删除、截取、合并、拷贝、排序以及字符串化等操作,并介绍数组对象的三个重要属性。 1. **数组的创建**: - `new Array()`:创建一个空...

    Java语言的科学与艺术 斯坦福大学经典教材

    11.11 编程练习 第12章 搜索与排序 12.1 搜索 12.2 排序 12.3 评估算法效率 12.4 使用数据文件 12.5 小结 12.6 复习题 12.7 编程练习 第13章 数组与ArrayList类 13.1 ArrayList类回顾 13.2 HashMap类 13.3 Java集合...

    Java数据结构和算法中文第二版(2)

    Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O表示法 为什么不用数组表示一切? 小结 问题 实验 编程作业 第3章 简单排序 如何排序? 冒泡...

    java String类常用方法练习小结

    在**字符串练习一**中,我们展示了如何使用`compareTo`方法对字符串数组进行排序。`compareTo`是`String`类的一个方法,它根据Unicode值比较两个字符串。如果第一个字符串大于第二个字符串,`compareTo`返回正整数;...

    Java语言的科学与艺术(国外计算机科学经典教材)

     1.8 小结  1.9 复习题 第2章 编程示例  2.1 “Hello world”程序  2.2 编程过程的观点  2.3 两数相加的程序  2.4 编程习语和模式  2.5 类和对象  2.6 图形程序  2.7 小结  2.8 复习题  2.9 编程练习 第3...

Global site tag (gtag.js) - Google Analytics