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

冒泡排序和快速排序算法学习归纳-java实现

阅读更多
/**
 * 冒泡排序和快速排序
 */
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冒泡排序java冒泡排序集锦方法!

    以上三个知识点总结了关于 Java 排序的一些基本应用,包括基础的冒泡排序算法、使用标准库 `Collections.sort()` 进行排序以及使用 `RuleBasedCollator` 实现国际化排序等。这些技术对于编写高效、可维护的 Java ...

    java排序.txt

    本文件主要介绍了几种常用的Java排序算法(直接插入排序、冒泡排序、选择排序),并通过示例代码展示了这些算法的基本实现。不同的排序算法有各自的优缺点,适用于不同场景下的数据处理。对于开发者而言,理解这些...

    JAVA经典排序汇总

    本文以Java语言为背景,对多种排序算法进行了归纳和实践,旨在帮助读者深入理解和应用这些算法。 首先,我们来看一下Java中常见的几种排序方法: 1. **插入排序**: - **直接插入排序**:将每个元素插入到已排序...

    java排序算法.txt

    本篇文章将重点介绍几种常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序和快速排序,并通过具体的Java实现来加深理解。 ### 1. 插入排序(Insertion Sort) #### 定义与原理 插入排序是一种简单的排序...

    JAVA数据结构和算法笔记[归纳].pdf

    - **排序算法**:各种排序算法如冒泡、选择、插入、快速、归并、堆排序等,各有优劣,适用于不同的场景。 3. **Java中的数组**: - **创建**:数组在Java中是对象,创建时需使用`new`操作符指定大小。 - **访问*...

    算法-理论基础- 索引(包含源程序).rar

    1. **基本算法**:如排序算法(冒泡排序、插入排序、选择排序、快速排序、归并排序等)、查找算法(顺序查找、二分查找、哈希查找等)。 2. **高级算法**:包括动态规划、贪心算法、分治策略、回溯法、分支限界法等...

    数据结构与算法分析_java语言描述

    - **冒泡排序、选择排序、插入排序**:分别介绍了这几种简单的排序算法。 - **快速排序**:详细阐述了快速排序的分治思想及其实现步骤。 - **归并排序**:讲解了归并排序的原理,包括递归合并的过程。 - **堆排序**...

    算法导论書

    在《算法导论》中,读者将接触到排序算法(如冒泡排序、快速排序、归并排序)、搜索算法(如二分查找、广度优先搜索、深度优先搜索)以及图算法(如Dijkstra算法、Floyd-Warshall算法)等核心概念。 Java作为一种...

    Java软件开发实战 Java基础与案例开发详解 9-8 练习题 共4页.pdf

    - **常见算法**:冒泡排序、插入排序、选择排序、快速排序等。 #### 4-5 增强for循环 - **格式**:for (数据类型 element : collection) { ... } - **优点**:简化了对数组或集合的操作。 #### 4-6 数组和排序算法...

    java面试题归纳

    14. **数据结构与算法**:理解数组、链表、栈、队列、堆、二叉树等基本数据结构,以及排序(快速排序、归并排序、冒泡排序等)、查找(二分查找、哈希查找等)算法。 15. **并发编程**:线程池的使用,如...

    同学收集算法总结.zip

    排序算法如冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序,它们各有优缺点,适用于不同的场景。查找算法有顺序查找、二分查找、哈希查找等,其中二分查找在有序数组中的效率尤为显著。 数据结构是算法...

Global site tag (gtag.js) - Google Analytics