`
jamour
  • 浏览: 24764 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[ J2SE ] 快速排序

阅读更多

public class QuitSort {
 int a[] = { 100, 40, 60, 87, 34, 11, 56, 0 };

 public void sort(int[] a, int i, int j) {
  int p = 0;
  if (i < j) {
   p = partition(a, i, j);//划分
   sort(a, i, p - 1);//对左区间递归排序
   sort(a, p + 1, j);//对右区间递归排序
  }
 
 }

 // 将数组进行划分 
 public int partition(int[] b, int low, int high) {
  int controlKey = b[low];
  while (low < high) {
   //   100, 40, 60, 87, 34, 11, 56, 0,[100]
   while ((low < high) && b[high] >= controlKey)
    high--;//从右向左扫描,查找第1个关键字小于controlKey的记录b[high]
   if (low < high)
    b[low++] = b[high];
   while (low < high && b[low] <= controlKey)
    low++;//从左向右扫描,查找第1个关键字大于control的记录b[low]
   if (low < high)
    b[high--] = b[low];
  }
  b[low] = controlKey;
  return low;//返回基准记录
 }

 public void print() {
  for (int q = 0; q < a.length; q++) {
   System.out.print(a[q]+",");
  }
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub  
  QuitSort quitSort = new QuitSort();
  quitSort.sort(quitSort.a, 0, quitSort.a.length - 1);
  quitSort.print();
 }

}

分享到:
评论

相关推荐

    J2SE6.0_CN.rar_j2se 6.0下载_j2se api chm 6.0_j2se6 a_j2se6 api_jav

    2. **Swing UI 提升**:Swing 组件库在 J2SE 6.0 中得到了增强,新增了诸如 JTabbedPane 的动画效果、JTable 的排序功能以及对 Accessibility 支持的增强,提高了用户界面的交互性和可访问性。 3. **NIO.2(New I/O...

    Collections & Generics in J2SE 1.5

    ### Collections与Generics在J2SE 1.5中的应用 #### 快速回顾Collections 在深入了解Generics之前,我们先快速回顾一下Java中的Collections框架。Collections是Java平台的一个核心特性,它为开发者提供了一组丰富...

    Java Application-J2SE实例基础程序

    例如,快速排序使用分治策略,通过选取一个基准元素并重新排列数组,将问题分解为较小的部分进行处理。 外部调用exe文件是Java程序与操作系统交互的一种方式。这可以通过`Runtime.getRuntime().exec()`方法实现,...

    j2se集合课件是java的基础课程章节之一

    Java集合框架是Java编程语言中的核心部分,尤其对于J2SE(Java 2 Standard Edition)开发者来说,理解和掌握集合框架是必备的技能。本课件将深入探讨Java集合框架,帮助初学者和进阶者更好地理解和运用这些工具。 ...

    排序的算法

    快速排序通过选取一个“基准”元素,将数组分为两部分:一部分的所有元素都小于基准,另一部分的所有元素都大于基准。然后对这两部分递归进行快速排序。平均时间复杂度为O(n log n),在实际应用中表现优秀。 归并...

    Java核心内容2对java中J2SE,web开发进行了总结,分析了和大量实例

    HashSet和TreeSet则实现了无序不重复元素的存储,其中TreeSet基于红黑树,能保证排序性。 进一步,Java的I/O流系统允许程序与外部世界交互,包括读取文件、网络通信等。流分为字节流和字符流,如InputStream和...

    马士兵J2SE第七章容器个人学习笔记.pdf

    在J2SE中,容器API位于`java.util`包下。容器API的核心接口是`Collection`,它是一个接口,定义了基础的存取一组对象的方法。`Collection`接口有两个重要的子接口:`Set`和`List`,它们分别代表了不允许重复元素的...

    用Java实现几种常见的排序算法

    这些排序算法包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序和堆排序。我们还会提到一个名为SortUtil的工具类,它可能提供了一些通用的排序辅助方法。 首先,让我们逐一了解这些排序算法的基本...

    spring data jpa

    通过学习和运行这个示例,开发者可以快速掌握Spring Data JPA的用法,理解如何在非J2EE环境中构建基于JPA的数据访问层,并了解如何与MySQL数据库进行交互。这对于任何希望在Java后端开发中使用Spring Data JPA的...

    Java 技能测试题

    实现时可以采用分治策略,选择一个基准元素,将数组分为两部分,小于基准的放在左边,大于基准的放在右边,然后对这两部分递归进行快速排序。 - **大容量数据查询**,对于大量数据,通常会选择使用二分查找、哈希表...

    java设计模式_四大常用架构_迭代模型_并行排序算法

    常见的并行排序算法有快速排序、归并排序等的并行版本。在Java中,可以使用多线程或者并发库来实现这些算法。 综上所述,设计模式、迭代模型和并行排序算法都是现代软件开发中不可或缺的重要组成部分。Java作为一种...

    Java字符界面的小程序

    4. **GSort.java**:可能是一个实现排序算法的类,如快速排序、冒泡排序或插入排序。在Java中,学习和理解排序算法对于提高编程技能至关重要。 5. **Guess.java**:可能是一个猜数字游戏的实现,用户与程序进行交互...

    Android面试复习资料

    - 排序算法:快速排序、归并排序、冒泡排序、插入排序、选择排序等。 - 查找算法:二分查找、哈希查找。 - 动态规划、贪心算法、回溯算法等在实际问题中的应用。 4. **计算机网络**: - OSI七层模型与TCP/IP四...

    心兰菜单2代

    这款软件是第一代产品的升级版,它在保持简洁操作的同时,提供了更多定制化的选项,使得用户可以根据自己的需求调整界面布局和排序方式。 在技术实现上,"心兰菜单2代"采用了Java J2SE平台进行开发,这确保了其跨...

    java程序员找工作常见题型

    1. **排序算法**:快速排序、归并排序、冒泡排序、插入排序、选择排序等,以及它们的时间复杂度和适用场景。 2. **查找算法**:二分查找、哈希查找、线性查找等。 3. **数据结构**:数组、链表、栈、队列、堆、树...

    J2ME笔试 java

    - 例如快速排序算法,其基本思想是选取一个基准值,将数组分为两部分,一部分小于基准,另一部分大于基准,分别对两部分进行递归排序。在开发中,快速排序可用于大量数据的高效排序。 10. **数据结构**: - 从...

    javase知识的回顾

    J2SE是早期版本的称呼,现在通常称为Java SE。在这个知识回顾中,我们将深入探讨Java类集框架(Collections Framework),这是Java中处理对象集合的重要工具。 类集的出现是为了克服传统数组的局限性,尤其是数组...

    JAVA 面试题集(有答案)pdf格式

    - **插入排序**、**希尔排序**、**冒泡排序**、**快速排序**、**直接选择排序**、**堆排序**、**归并排序**、**箱排序**、**基数排序**等。 - **快速排序**示例代码(Java版本): ```java public class QuickSort { ...

    Java简历以及java面试题

    2. **数据结构与算法**:数组、链表、栈、队列、哈希表、排序算法(快速排序、归并排序、冒泡排序等)和查找算法。 3. **集合框架**:List、Set、Map的区别,ArrayList、LinkedList、HashMap的工作原理。 4. **IO...

Global site tag (gtag.js) - Google Analytics