////快速排序法
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工具类.
用java语言实现冒泡排序、插入排序、堆排序、快速排序、归并排序、希尔排序、桶排序,并且对各种排序算法进行性能的比较。
插入排序 冒泡排序 堆排序 基数排序 选择排序 快速排序的源码 java实现
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,包括算法的详细介绍,以及对几种算法的详细测试
常用三种排序:快速排序、冒泡排序、插入排序的java实现示例
用java实现了以下算法: 1、冒泡排序、冒泡排序的两种改进。 2、插入排序。 3、选择排序。 4、希尔排序。 5、归并排序。 6、快速排序。
JAVA排序大全 冒泡 快速 选择 归并排序
冒泡排序 3. 插入排序 4. 希尔排序 5. 堆排序 6. 归并排序 7. 快速排序 8. 基数排序 9. 计数排序 10. 桶排序 十种排序代码 我的博文地址:http://blog.csdn.net/u010156024/article/details/48932219
JAVA实现选择,冒泡,归并,插入,快速排序。并随机生成不同规模的随机数来测试各种排序方法耗费的时间。
Java的算法 排序算法 冒泡排序 堆排序 插入排序 合并排序 快速排序 选择排序 希尔排序
快速排序、归并排序、希尔排序、冒泡排序、选择排序、插入排序等8中排序方式原理分析java实现
1直接插入排序 * 基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序 2冒泡排序 * 基本...
八种排序算法原理及Java实现( 冒泡排序+快速排序直接插入排序+希尔排序+选择排序+归并排序+基数排序)
java实现各种排序 快速 插入 冒泡 选择排序 完整代码 总结
设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...
Java 冒泡法,选择法,插入法,快速排序法,实现代码。
选择排序 冒泡排序 插入排序 希尔排序 堆排序 归并排序 快速排序 基数排序 计数排序 桶排序 我的博客地址:http://blog.csdn.net/u010156024/article/details/48932219
java排序大全,堆、快速、插入、冒泡、选择...java排序大全,堆、快速、插入、冒泡、选择...java排序大全,堆、快速、插入、冒泡、选择...