效率可观的快速排序实现代码:
import java.util.Arrays; public class QuickSort2 { public static void main(String[] args) { int size = 5000; int[] array = new int[size]; int[] array2 = new int[size]; for (int j = 0; j < size; j++) { int r = (int) (Math.random() * 1000); array[j] = r; array2[j] = r; } long s1 = System.currentTimeMillis(); Arrays.sort(array); for (int i : array) { System.out.print(i + "\t"); } long e1 = System.currentTimeMillis(); System.out.println(""); long s2 = System.currentTimeMillis(); QuickSort2.quickSort(array2, 0, array2.length - 1); for (int i : array2) { System.out.print(i + "\t"); } long e2 = System.currentTimeMillis(); System.out.println(""); System.out.println((e1 - s1) + "-----" + (e2 - s2)); } public static int partition(int[] arr, int low, int high) { int key = arr[low]; while (low < high) { while (low < high && arr[high] >= key) { --high;// 从右向左搜索 } arr[low] = arr[high]; while (low < high && arr[low] <= key) { ++low;// 从左向右搜索 } arr[high] = arr[low]; } arr[low] = key; return low; } public static void quickSort(int[] arr, int start, int end) { if (start <= end - 1) { int loc = partition(arr, start, end);// 对原数据进行一次划分 quickSort(arr, start, loc - 1);// 从右往左搜索排序 quickSort(arr, loc + 1, end);// 从左往右搜索排序 } } }
相关推荐
### Java数据结构与算法——学习笔记 #### 一、引言 在计算机科学领域,**数据结构**与**算法**是两个极其重要的概念。数据结构指的是数据的组织方式,而算法则是解决特定问题的一系列步骤。这两者是编程的基础,...
### Java数据结构与算法学习笔记知识点总结 #### 一、数据结构概述 数据结构是对数据的一种组织形式,它决定了数据的存储方式以及处理数据的方法。常见的数据结构包括但不限于数组、链表、栈、队列、二叉树、图等...
- **单核处理器上的并发**: 在单核处理器上,虽然物理上只能执行一个线程,但通过快速地在多个线程间切换(即上下文切换),使得这些线程看起来像是同时运行。 - **多核处理器上的并发**: 在多核处理器上,每个线程...
可能包含了经典的排序、搜索算法实现,如冒泡排序、快速排序、二分查找等,以及链表、树、图等数据结构的Java实现。 3. **tool**:这部分可能包含了一些常用的开发工具或库的使用示例,比如构建工具Maven,版本控制...
这些学习笔记将带你深入了解Java的核心概念,特别是面向对象编程和集合框架。以下是对每个文件内容的详细阐述: 1. **Day0804_HashMap的基本使用.docx**:HashMap是Java集合框架中的一个重要组件,它提供了键值对的...
算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...
这份"java学习笔记,前人总结出来的精华之作(2)"无疑是为那些希望掌握Java技术的人提供了一份宝贵的资源。笔记深入浅出地介绍了Java的核心概念,包括语法、数据结构、算法等方面,旨在帮助学习者快速理解并熟练...
### Java学习笔记知识点总结 #### 一、JVM与内存管理 **1.1 JVM基本概念** - **JVM(Java Virtual Machine)**: Java虚拟机是执行Java字节码的虚拟机,它提供了运行Java程序所需的环境。 **1.2 线程** - **线程...
在这个阶段的学习中,尚硅谷提供了2023年的学习笔记和面试题,帮助你提升Java技能并为求职做好准备。 首先,多线程是Java的一个关键特性,允许程序同时执行多个任务。理解线程的创建(通过Thread类或实现Runnable...
### Java学习笔记整理 #### 1. Java简介 ##### 1.1 计算机编程和开发语言 计算机系统由硬件系统和软件系统组成。软件系统又进一步细分为系统软件和应用软件。其中,系统软件包括操作系统、编译系统、数据库系统等...
学习ArrayList与LinkedList的区别、TreeSet与HashSet的不同,以及排序算法(如快速排序、归并排序)的应用。 14. **网络编程** 使用Socket进行客户端-服务器通信,理解TCP/IP协议栈的基本原理。 15. **数据库...
Java数据结构与算法学习笔记之排序,主要探讨了六种常见的排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序。这些排序算法是计算机科学的基础,无论是在日常开发还是面试中都经常遇到。现在...
### 高手总结Java初学者学习经验笔记整理 #### 一、Java集合框架概述 Java集合框架是Java标准库中的一个重要组成部分,它提供了一组接口和实现类来处理各种数据结构,比如列表、集合和映射等。这些数据结构允许...
【Java学习笔记全程详解】 Java作为一种广泛应用于企业级开发、移动应用、大数据处理等领域的编程语言,其学习过程涵盖了许多核心概念和技术。这份"我的Java学习笔记"详细记录了作者在学习Java过程中积累的心得体会...
在本Java学习笔记中,我们将深入探讨数组和排序算法这两个核心概念,它们是任何程序员学习Java编程时的基础。数组是存储固定数量同类型元素的数据结构,而排序算法则是对数组中的元素进行排列的方法。让我们详细了解...
《良葛格Java 学习笔记(繁体全)》是一部详尽的Java学习资源,旨在帮助初学者和进阶者深入理解Java编程语言。笔记内容涵盖了从基础语法到高级特性的广泛领域,以繁体中文呈现,适合中文阅读习惯的用户。下面将对其中...
### Eclipse开发学习笔记知识点解析 #### 一、Eclipse工作台(Workbench) Eclipse工作台是Eclipse提供的集成开发环境的核心部分,旨在为开发者创建一个无缝集成的工具集,以便于管理和导航工作空间资源。它是开发...
Java 学习笔记 Java 是一种广泛使用的编程语言,本资源摘要提供了 Java 学习笔记的关键要点,涵盖了 Java ...本资源摘要信息提供了 Java 学习笔记的关键要点,旨在帮助读者快速了解 Java 语言的基本概念和编程技巧。
以下是对"CoreJava_day15"学习笔记中可能涉及的一些关键知识点的详细解释: 1. **异常处理**: - 异常是程序运行时出现的错误,Java通过Exception类及其子类来表示这些错误。在Java中,异常处理使用try-catch-...