////快速排序法
class QuerySort
{
public void sort(int left,int right,int []array)
{
int l=left;
int r=right;
int pivot=array[(left+right)/2];
int temp=0;
while(l<r)
{
while(array[l]<pivot) l++;
while(array[r]>pivot) r--;
if(l>=r) break;
temp=array[l];
array[l]=array[r];
array[r]=temp;
if(array[l]==pivot) --r;
if(array[r]==pivot) ++l;
}
if(l==r)
{
l++;
r--;
}
if(left<r) sort(left,r,array);
if(right>l) sort(l, right, array);
}
}
////插入排序
class InsertSort
{
public void sort(int arr[])
{
for(int i=1;i<arr.length;i++)
{
int insertVal=arr[i];
///insertVal准备和前一个数比较
int index=i-1;
while(index>=0&&insertVal<arr[index])
{
///将arr[index]向后移动
arr[index+1]=arr[index];
///让index向前移
index--;
}
///将insertVal插入适当位置
arr[index+1]=insertVal;
}
}
}
//// 选择排序
class Select
{
public void sort(int arr[])
{
int temp;
for(int j=0;j<arr.length-1;j++)
{
////默认第一个j数最小
int min=arr[j];
///记录最小数的下标minIndex
int minIndex=j;
for(int k=j+1;k<arr.length;k++)
{
if(min>arr[k])
{
min=arr[k];
minIndex=k;
}
}
///退出内部for时找到这次的最小值
///用中间变量记录arr[j]
temp=arr[j];
///将arr[j]和最小值arr[minIndex]替换
arr[j]=arr[minIndex];
///将arr[minIndex]赋值为中间变量temp
arr[minIndex]=temp;
}
}
}
////冒泡排序
class Bubble
{
public void sort(int arr[])
{ int temp;
////外层排序,决定要走几趟
for(int i=0;i<arr.length-1;i++)
{
////内层排序,逐个比较,前一个数比后一个数打,则交换位置
for(int j=0;j<arr.length-1-i;j++) /////arr.length-1-i
{
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
}
分享到:
相关推荐
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
例如,冒泡排序和插入排序简单但效率较低,适合小规模数据;堆排序和快速排序在中大规模数据上表现良好,但快速排序的不稳定性和堆排序的空间复杂度是需要注意的问题;归并排序和希尔排序在稳定性上有优势,而桶排序...
本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
该算法的基本思想是:选择一个基准值,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归...
本篇文章将详细讲解快速排序、冒泡排序和插入排序这三种常用的排序算法,并通过Java代码示例进行演示。 **快速排序** 快速排序是一种高效的排序算法,由英国计算机科学家C.A.R. Hoare于1960年提出。其基本思想是...
在Java中,冒泡排序的基本思路是使用两个for循环,外层循环控制比较的轮数,内层循环用于两两比较并交换。改进的冒泡排序通常包括设置标志位来检测是否已经完成排序,以及添加一个提前退出循环的条件,当某次遍历...
例如,插入排序和选择排序适合小规模数据,冒泡排序虽然效率较低但实现简单,堆排序和快速排序在处理大规模数据时有较好性能,而基数排序则能处理非负整数排序。在实际开发中,根据具体需求选择合适的排序算法是非常...
本文将详细解析四种常见的排序算法:冒泡排序、快速排序、插入排序和选择排序,以及一种查找算法——二分法查找。 ### 冒泡排序(Bubble Sort) 冒泡排序是一种简单直观的排序算法。它重复地遍历要排序的数列,一...
下面是一个简单的Java冒泡排序实现: ```java public class BubbleSort { public static void bubbleSort(int[] array) { int n = array.length; for (int i = 0; i < n - 1; i++) { // 外层循环控制遍历次数 ...
总的来说,这段代码提供了四种排序算法的实现,分别是冒泡排序、选择排序、插入排序以及Java内置的数组排序。每种排序算法都有其适用场景,理解这些算法可以帮助我们更好地解决实际问题,并根据需求选择合适的排序...
在`Insert.java`文件中,插入排序的实现可能包括: - 初始化已排序部分为第一个元素,然后逐个将后续元素与已排序部分的元素比较,并在合适位置插入。 - 每次插入一个新元素,都会导致已排序部分增加一个元素。 ...
JAVA排序大全 冒泡 快速 选择 归并排序
本文将详细讨论两种常见的简单排序算法:冒泡排序和直接插入排序,它们都是基于比较的内部排序算法,并且在Java语言中实现。 **冒泡排序(Bubble Sort)** 冒泡排序是一种基础的排序算法,其基本思想是通过重复...
本资源包"选择排序 冒泡排序 插入排序 快速排序 堆排序.zip"聚焦于五种经典的排序算法,包括选择排序、冒泡排序、插入排序、快速排序以及堆排序。这些算法的实现语言是Objective-C,这是一种强大的面向对象的编程...
java实现10种排序算法:选择排序、冒泡排序、插入排序、快速排序、归并排序、堆排序、希尔排序、桶排_sorting-algorithms
这些算法包括冒泡排序、插入排序、选择排序、归并排序以及快速排序。 **冒泡排序**是一种基础的排序方法,它通过重复遍历数组,比较相邻元素并交换位置,使得较大的元素逐渐“浮”到数组的一端。冒泡排序的时间...
Java中常见的三大排序算法包括插入排序、冒泡排序和选择排序。这三种排序算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程技能非常有帮助。 **1. 插入排序** 插入排序是一种简单直观的排序算法,它的...
在本文中,我们将深入探讨三种基本的排序算法:插入排序、选择排序和冒泡排序。这些算法是计算机科学中基础且重要的部分,特别是在理解数据结构和算法效率方面。以下是对每种排序算法的详细说明: **插入排序...
这里我们将深入探讨快速排序、归并排序、希尔排序、冒泡排序、选择排序以及插入排序这六种经典的排序算法,并通过Java语言来实现它们。 1. **快速排序**:由C.A.R. Hoare在1960年提出,是基于分治策略的一种高效...