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