- 浏览: 21522 次
- 性别:
文章分类
最新评论
package com.itheima.util; /** * 排序工具类 * * @author mrng * */ public class SortUtils { /** * 快速排序 如果调用此方法,次方法会再掉用quickSort(String[] strArr, int left, int rigth)方法 * left默认为0, right默认为strArr.length-1 * * @param strArr */ public static void quickSort(int[] arr) { quickSort(arr, 0, arr.length - 1); } /** * 快速排序 此方法可以对数组需要排序的区间进行定制 * * @param strArr * @param left * @param right */ public static void quickSort(int[] arr, int left, int right) { // 数组中间的元素 int middle = arr[(left + right) / 2]; // 临时变量,用于交换数组元素使用 int temp; // 向后搜索的指针 int i = left; // 向前搜索的指针 int j = right; do { while (arr[i] < middle && i < right) i++; // 找出左边比中间值大的数 while (arr[j] > middle && j > left) j--; // 找出右边比中间值小的数 if (i <= j) { // 将左边大的数和右边小的数进行交换 temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i++; j--; } } while (i <= j); // 当两个指针交错时停止 // 将数组分开两半,确定每个数字的正确位置 if (i < right) { quickSort(arr, i, right); } if (j > left) { quickSort(arr, left, j); } } /** * 冒泡排序法 * * @param arr */ public static void BubbleSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { arr[j] = arr[j] ^ arr[j + 1]; arr[j + 1] = arr[j] ^ arr[j + 1]; arr[j] = arr[j] ^ arr[j + 1]; } } } } /** * 选择排序法 */ public void SelectSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j < arr.length; j++) { if (arr[i] > arr[j]) { arr[i] = arr[i] ^ arr[j]; arr[j] = arr[i] ^ arr[j]; arr[i] = arr[i] ^ arr[j]; } } } } }
------- android培训、java培训、期待与您交流! ----------
发表评论
-
IO输入与输出
2012-08-13 17:21 0IO/输入输出 File类 它是IO包中唯一代表磁盘文件本身信 ... -
网络编程-总结01
2012-08-12 20:38 731网络模型: OSI参考模型 TCP/IP参考模型 ... -
黑马程序员-Java基础加强-知识总结
2012-07-30 04:24 1063------- android培训、java ... -
黑马程序员-银行业务调度系统的分析、设计、实现
2012-07-28 20:19 824------- android培训、java培训、期待与 ... -
黑马程序员-交通灯管理系统的分析、设计、实现
2012-07-28 01:49 741------- android培训、java培训、期待与 ... -
黑马程序员-编程基础03-单例设计模式
2012-07-27 17:47 610------- android培训、java培训、期待与 ... -
黑马程序员-编程基础02-小知识点
2012-07-27 17:12 881------- android培训、jav ... -
黑马程序员-编程基础01-进制
2012-07-26 17:19 908------- android培训、java培训、期待与您交流 ... -
黑马程序员-Java开发前奏
2012-07-26 17:10 780------- android培训、java培训、期待与您交流 ... -
IO-1
2012-07-24 18:26 08.File类 1)File类是IO包中唯一代表磁 ... -
IO-2
2012-07-24 18:24 011.字符编码 计算机里只有数字,计算机里的一 ... -
为什么匿名内部类只能访问其所在方法中的final变量
2012-07-24 18:03 0(1).所谓“局部内部类”就是在对象的方法成员内部定义的类。而 ... -
黑马程序员-网络编程-总结02
2012-07-25 00:04 689------- android培训、java培训、期待与 ... -
黑马程序员-GUI
2012-07-25 00:08 667------- android培训、java培训、期待与 ... -
黑马程序员-IO包中的其它对象
2012-07-25 00:04 684------- android培训、ja ... -
黑马程序员-异常
2012-07-25 00:03 733------- android培训、java培训、期待与 ... -
黑马程序员-&和&&的区别
2012-07-24 14:31 569------- android培训、java培训、期待与 ... -
黑马程序员-将指定目录下的文件复制到指定的目录,并更改扩展名
2012-07-24 14:20 1022------- android培训、java培训、期待与 ... -
黑马程序员-wait and notify
2012-07-24 13:12 732------- android培训、jav ... -
黑马程序员-线程状态转换图
2012-07-24 13:01 1197-------- android培训、java ...
相关推荐
冒泡排序--Java常用排序算法程序员必须掌握的8大排序算法
数据结构(C语言)--8种排序算法.pdf
此文件为数据结构中的九种排序算法,包含一些排序方法的过程,其九种排序包括:直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,基数排序!
设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 【基本要求】 (1)实现各种内部排序。包括冒泡排序,直接选择排序,希尔排序,快速排序,堆排序。 (2) 待排序的元素的关键字为整数...
常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结
C++黑马程序员学习资料,附赠《InterviewGuide第四版By阿秀》、《LeetCode刷题手册》、《背包问题九讲》、《算法图解》pdf版本,三个基础课程文档手册及三个实验项目,由简到繁分别为《通讯录管理系统》、《职工管理...
本项目旨在实现并比较六种经典的排序算法——直接插入排序、折半插入排序、起泡排序、简单选择排序、堆排序以及2-路归并排序,使用C语言编程。为了全面评估这些算法,我们将在一组随机生成的30000个整数上运行它们,...
包括冒泡排序,选择排序,插入排序,希尔排序,快速排序等常用排序算法的实现并耗时比较
学习资料如"Java常用排序算法程序员必须掌握的8大排序算法Java开发Java经验技巧共16页.pdf"可以提供详细的讲解和示例,帮助你更好地理解和实践这些算法。同时,这些排序算法不仅限于Java,也广泛应用于Python、C语言...
3. **其他可能包含的排序算法**:除了快速排序和堆排序,这个资源可能还包含了其他的排序算法,如冒泡排序、插入排序、选择排序、归并排序、希尔排序、计数排序、桶排序、基数排序等。这些算法各有特点,适用于不同...
这里我们将深入探讨七种常用的排序算法,并通过C++语言实现它们。这七种算法分别是:冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序和快速排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之...
这些算法都是在程序设计中常用的排序方法,了解这些算法对于程序员来说非常重要。 冒泡排序 冒泡排序是一种稳定的排序算法。其原理是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生...
下面我们将深入探讨几种常见的排序算法及其各趟排序过程。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单直观的排序算法,通过比较相邻元素并交换位置来完成排序。在每趟排序中,最大或最小的元素会“浮”到序列...
详解Java常用排序算法-选择排序 选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是每次从待排序的元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的元素排完。 选择...
常用的排序算法--堆排序,通过创建堆的方法进行排序
快速排序算法的实现可以分为以下几个步骤: 1. 选择pivot元素:选择数组中的一个元素作为pivot,可以随机选择或选择数组的中间元素。 2. 分区:将数组分成两个部分:左侧元素都小于pivot,右侧元素都大于pivot。 3....
《黑马程序员匠心之作 C++教程_第7阶段-C++实战项目机房预约讲义》是为C++初学者量身定制的一份详细教学资源。这份讲义深入浅出地介绍了C++编程语言,并通过实际的机房预约系统项目,帮助学习者将理论知识与实践相...
本文将针对C语言中的常用算法进行详细阐述,旨在帮助编程者更好地理解和应用这些基础算法,提升编程能力。 1. **排序算法**: - 冒泡排序:通过不断交换相邻的不正确顺序元素来达到排序目的,时间复杂度为O(n^2)。...
数据结构 课程设计 多种排序算法 有界面 数据结构 课程设计 多种排序算法 有界面 数据结构 课程设计 多种排序算法 有界面 数据结构 课程设计 多种排序算法 有界面 数据结构 课程设计 多种排序算法 有界面