- 浏览: 21720 次
- 性别:
文章分类
最新评论
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 739网络模型: OSI参考模型 TCP/IP参考模型 ... -
黑马程序员-Java基础加强-知识总结
2012-07-30 04:24 1068------- android培训、java ... -
黑马程序员-银行业务调度系统的分析、设计、实现
2012-07-28 20:19 831------- android培训、java培训、期待与 ... -
黑马程序员-交通灯管理系统的分析、设计、实现
2012-07-28 01:49 745------- android培训、java培训、期待与 ... -
黑马程序员-编程基础03-单例设计模式
2012-07-27 17:47 621------- android培训、java培训、期待与 ... -
黑马程序员-编程基础02-小知识点
2012-07-27 17:12 889------- android培训、jav ... -
黑马程序员-编程基础01-进制
2012-07-26 17:19 925------- android培训、java培训、期待与您交流 ... -
黑马程序员-Java开发前奏
2012-07-26 17:10 792------- 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 694------- android培训、java培训、期待与 ... -
黑马程序员-GUI
2012-07-25 00:08 677------- android培训、java培训、期待与 ... -
黑马程序员-IO包中的其它对象
2012-07-25 00:04 689------- android培训、ja ... -
黑马程序员-异常
2012-07-25 00:03 739------- android培训、java培训、期待与 ... -
黑马程序员-&和&&的区别
2012-07-24 14:31 575------- android培训、java培训、期待与 ... -
黑马程序员-将指定目录下的文件复制到指定的目录,并更改扩展名
2012-07-24 14:20 1027------- android培训、java培训、期待与 ... -
黑马程序员-wait and notify
2012-07-24 13:12 739------- android培训、jav ... -
黑马程序员-线程状态转换图
2012-07-24 13:01 1202-------- android培训、java ...
相关推荐
冒泡排序--Java常用排序算法程序员必须掌握的8大排序算法
数据结构(C语言)--8种排序算法.pdf
此文件为数据结构中的九种排序算法,包含一些排序方法的过程,其九种排序包括:直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,基数排序!
设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 【基本要求】 (1)实现各种内部排序。包括冒泡排序,直接选择排序,希尔排序,快速排序,堆排序。 (2) 待排序的元素的关键字为整数...
常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 # sort.insertionSort() #插入排序 # sort.Selectionsort1() #选择排序 # sort.heapSort() #堆排序 # sort.countSort() ...
C++黑马程序员学习资料,附赠《InterviewGuide第四版By阿秀》、《LeetCode刷题手册》、《背包问题九讲》、《算法图解》pdf版本,三个基础课程文档手册及三个实验项目,由简到繁分别为《通讯录管理系统》、《职工管理...
内容概要:本文全面介绍了程序员常用的八大排序算法,分别涉及四种主要类别:插入排序、交换排序、选择排序以及分配排序。文中详细解释了每种排序算法的基本思想,并提供了具体的 Java 实现代码。排序算法包括直接...
本项目旨在实现并比较六种经典的排序算法——直接插入排序、折半插入排序、起泡排序、简单选择排序、堆排序以及2-路归并排序,使用C语言编程。为了全面评估这些算法,我们将在一组随机生成的30000个整数上运行它们,...
学习资料如"Java常用排序算法程序员必须掌握的8大排序算法Java开发Java经验技巧共16页.pdf"可以提供详细的讲解和示例,帮助你更好地理解和实践这些算法。同时,这些排序算法不仅限于Java,也广泛应用于Python、C语言...
百战程序员-AI算法工程师就业班快速入门.mp4
本文将深入探讨C++实现的几种常见排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序以及堆排序。 1. **冒泡排序**: 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果...
这里我们将深入探讨七种常用的排序算法,并通过C++语言实现它们。这七种算法分别是:冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序和快速排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之...
本文将详细介绍Java程序员需要了解的8种排序算法。 1. **直接插入排序** - 基本思想:直接插入排序是一种简单的排序方法,它通过将待插入元素与已排序序列中的元素依次比较,找到合适的位置插入,从而保持已排序...
这些算法都是在程序设计中常用的排序方法,了解这些算法对于程序员来说非常重要。 冒泡排序 冒泡排序是一种稳定的排序算法。其原理是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生...
程序员小吴 - 一起来学算法吧!原油小吴一起来学算法吧! 最新消息TwoSum相关问题思路总结写了一个小程序,也许能更方便的学习算法这可能是东半球讲十大排序算法最好的一篇文章毕业十年后,我渴望得到一份会计师的...
下面我们将深入探讨几种常见的排序算法及其各趟排序过程。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单直观的排序算法,通过比较相邻元素并交换位置来完成排序。在每趟排序中,最大或最小的元素会“浮”到序列...
常用的排序算法--堆排序,通过创建堆的方法进行排序
快速排序算法的实现可以分为以下几个步骤: 1. 选择pivot元素:选择数组中的一个元素作为pivot,可以随机选择或选择数组的中间元素。 2. 分区:将数组分成两个部分:左侧元素都小于pivot,右侧元素都大于pivot。 3....
快速排序-一种强大的排序算法pdf