一 插入排序法:
说明: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。
Java代码
public class InsertSorter<E extends Comparable<E>> extends Sorter<E> {
/**
* from 起始位置
* len 从起始位置开始 需要比较的次数
*/
public void sort(E[] array, int from, int len) {
E tmp=null;
for(int i=from+1;i<from+len;i++){
tmp=array[i];
int j=i;
for(;j>from;j--){
if(tmp.compareTo(array[j-1])<0){
array[j]=array[j-1];
}
else break;
}
array[j]=tmp;
}
}
}
----------------------------------------------------------------------------
二 冒泡排序法:
说明: 算法思想是每次从数组末端开始比较相邻两元素,把第i小的冒泡到数组的第i个位置。i从0一直到N-1从而完成排序。(当然也可以从数组开始端开始比较相邻两元素,把第i大的冒泡到数组的第N-i个位置。i从0一直到N-1从而完成排序。)
Java代码
public class BubbleSorter<E extends Comparable<E>> extends Sorter<E> {
private static boolean DWON=true;
public final void bubble_down(E[] array, int from, int len)
{
for(int i=from;i<from+len;i++)
{
for(int j=from+len-1;j>i;j--)
{
if(array[j].compareTo(array[j-1])<0)
{
swap(array,j-1,j);
}
}
}
}
public final void bubble_up(E[] array, int from, int len)
{
for(int i=from+len-1;i>=from;i--)
{
for(int j=from;j<i;j++)
{
if(array[j].compareTo(array[j+1])>0)
{
swap(array,j,j+1);
}
}
}
}
@Override
public void sort(E[] array, int from, int len) {
if(DWON)
{
bubble_down(array,from,len);
}
else
{
bubble_up(array,from,len);
}
}
}
-----------------------------------------------------------------
三 选择排序法:
说明: 选择排序相对于冒泡来说,它不是每次发现逆序都交换,而是在找到全局第i小的时候记下该元素位置,最后跟第i个元素交换,从而保证数组最终的有序。相对与插入排序来说,选择排序每次选出的都是全局第i小的,不会调整前i个元素了。
Java代码
public class SelectSorter<E extends Comparable<E>> extends Sorter<E> {
@Override
public void sort(E[] array, int from, int len) {
for(int i=0;i<len;i++){
int smallest=i;
int j=i+from;
for(;j<from+len;j++){
if(array[j].compareTo(array[smallest])<0)
smallest=j;
}
swap(array,i,smallest);
}
}
}
分享到:
相关推荐
java排序算法使用及场景说明 文档后面有一些别人的链接,多在google上搜索Java排序算法,及维基百科上面也有很全的算法介绍。
java实现的常用的几种基本排序算法,插入、交换、选择、归并
Java排序算法代码.
Java排序算法实现 Java排序算法实现 Java排序算法实现
java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡
Java排序算法 Java排序算法.rar
Java排序算法 Java排序算法 Java排序算法
java产生多个随机数写入文件中,比较四种排序算法的效率
Java排序算法实现资源 这个资源是关于Java中排序算法实现的简单示例。排序算法是计算机科学中的基础概念,用于按升序或降序排列数据集。这里提供了两种常见的排序算法实现:冒泡排序和选择排序。 冒泡排序(Bubble ...
代码中列举了java常见的排序算法,并备有简单的注释信息,对于初级开发人员可供参考。
Java排序算法:插入,冒泡,选择,Shell,快速排序,归并排序,堆排序,桶式排序,基数排序
国外牛人的排序算法,内容丰富,适合初学者,爱挑战脑力的童鞋。
Java 排序算法大结合, 都是Java程序说明,希望对大家有用的
Java排序算法
java排序算法-大全.rar 集合了多种java排序算法
Java排序算法包 支持多种排序 支持各种排序要求 前提是自己写了排序的比较器
java 排序算法 选择 冒泡 插入 等等等
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。
JAVA排序算法汇总 常用的几种排序算法的JAVA实现,很有用的。