/**
* 冒泡排序和快速排序
*/
public class SwapSort {
public static void main(String[] args) {
int[] data = {261,53,48,11,13,48,32,15};
// bubbleSort(data);
quickSort(data);
for(int a: data){
System.out.print(a+" ");
}
}
/**
* 冒泡排序
*/
public static void bubbleSort(int[] r){
for(int i=1; i< r.length; i++){//n-1次循环
for(int j=0; j< r.length - i; j++){//逐步缩小冒泡范围
if(r[j] > r[j+1]){
int temp = r[j];
r[j] = r[j+1];
r[j+1] = temp;
}
}
}
}
/**
* 快速排序
*/
public static void quickSort(int[] r){
quickSort(r, 0, r.length -1);
}
/**
* 快速排序
*/
public static void quickSort(int[] r, int low, int high){
if(low < high){
int pa = partition(r, low, high);
quickSort(r, low, pa - 1);
quickSort(r, pa + 1, high);
}
}
/**
* 划分
*/
private static int partition(int[] r, int low, int high){
int pivot = r[low];//数轴元素
while(low < high){//从两端交替向内扫描
while(low < high && r[high] >= pivot){
high--;
}
r[low] = r[high];//将比pivot小的元素移向低端
while(low < high && r[low] <= pivot){
low++;
}
r[high] = r[low];//将比pivot大的元素移向高端
}
r[low] = pivot;//设置数轴
return low;//返回数轴元素位置
}
}
分享到:
相关推荐
以上三个知识点总结了关于 Java 排序的一些基本应用,包括基础的冒泡排序算法、使用标准库 `Collections.sort()` 进行排序以及使用 `RuleBasedCollator` 实现国际化排序等。这些技术对于编写高效、可维护的 Java ...
本文件主要介绍了几种常用的Java排序算法(直接插入排序、冒泡排序、选择排序),并通过示例代码展示了这些算法的基本实现。不同的排序算法有各自的优缺点,适用于不同场景下的数据处理。对于开发者而言,理解这些...
本文以Java语言为背景,对多种排序算法进行了归纳和实践,旨在帮助读者深入理解和应用这些算法。 首先,我们来看一下Java中常见的几种排序方法: 1. **插入排序**: - **直接插入排序**:将每个元素插入到已排序...
本篇文章将重点介绍几种常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序和快速排序,并通过具体的Java实现来加深理解。 ### 1. 插入排序(Insertion Sort) #### 定义与原理 插入排序是一种简单的排序...
- **排序算法**:各种排序算法如冒泡、选择、插入、快速、归并、堆排序等,各有优劣,适用于不同的场景。 3. **Java中的数组**: - **创建**:数组在Java中是对象,创建时需使用`new`操作符指定大小。 - **访问*...
1. **基本算法**:如排序算法(冒泡排序、插入排序、选择排序、快速排序、归并排序等)、查找算法(顺序查找、二分查找、哈希查找等)。 2. **高级算法**:包括动态规划、贪心算法、分治策略、回溯法、分支限界法等...
- **冒泡排序、选择排序、插入排序**:分别介绍了这几种简单的排序算法。 - **快速排序**:详细阐述了快速排序的分治思想及其实现步骤。 - **归并排序**:讲解了归并排序的原理,包括递归合并的过程。 - **堆排序**...
在《算法导论》中,读者将接触到排序算法(如冒泡排序、快速排序、归并排序)、搜索算法(如二分查找、广度优先搜索、深度优先搜索)以及图算法(如Dijkstra算法、Floyd-Warshall算法)等核心概念。 Java作为一种...
- **常见算法**:冒泡排序、插入排序、选择排序、快速排序等。 #### 4-5 增强for循环 - **格式**:for (数据类型 element : collection) { ... } - **优点**:简化了对数组或集合的操作。 #### 4-6 数组和排序算法...
14. **数据结构与算法**:理解数组、链表、栈、队列、堆、二叉树等基本数据结构,以及排序(快速排序、归并排序、冒泡排序等)、查找(二分查找、哈希查找等)算法。 15. **并发编程**:线程池的使用,如...
排序算法如冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序,它们各有优缺点,适用于不同的场景。查找算法有顺序查找、二分查找、哈希查找等,其中二分查找在有序数组中的效率尤为显著。 数据结构是算法...