ArraySort.java源文件://该文件为基类文件,其他的排序算法类都继承自该类
package com.oristand;
import java.util.Random;
public class ArraySort {
int[] a;
int length;
public ArraySort(int maxsize){
a = new int[maxsize];
length = 0;
}
public void insert(int value){
a[length] = value;
length++;
}
public void swap(int first,int second){
int temp = a[first];
a[first] = a[second];
a[second] = temp;
}
public void display(){
for(int i=0;i<length;i++){
System.out.print(a[i]+" ");
}
}
public static void main(String[] args) {
int maxsize = 5;
ArraySort as = new ArraySort(maxsize);
as.insert(1);
as.insert(2);
as.insert(3);
as.display();
}
}
冒泡排序文件:
package com.oristand;
public class BubbleSort extends ArraySort{
public BubbleSort(int maxsize){
super(maxsize);
}
public void sort(){
for(int end=length-1;end>0;end--)
for(int start=0;start<end;start++)
if(a[start+1]<a[start])
swap(start,start+1);
}
public static void main(String[] args) {
int maxsize = 5;
BubbleSort bs = new BubbleSort(maxsize);
bs.insert(54);
bs.insert(38);
bs.insert(72);
bs.insert(10);
bs.insert(8);
bs.sort();
bs.display();
}
}
选择排序文件:
package com.oristand;
public class SelectSort extends ArraySort {
public SelectSort(int maxsize){
super(maxsize);
}
public void sort(){
int in,min,start;
for(in=0;in<length-2;in++){
for(min=in,start=min+1;start<=length-1;start++)
if(a[min]>a[start]) min=start;
swap(in,min);
}
}
public static void main(String[] args) {
int maxsize =10;
BubbleSort bs = new BubbleSort(maxsize);
bs.initByRandrom();
bs.display();
bs.sort();
bs.display();
}
}
分享到:
相关推荐
几种常见的排序算法代码,附有其效率及分析
几种经典的排序算法 (1)若n较小(如n≤50),可采用直接插入或直接选择排序。 当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。 (2)若文件初始状态基本有序...
该程序包含了几种算法,读者可对此进行试验
(1)直接插入排序算法验证。 (2)快速排序算法验证。 (3)直接选择排序算法验证。 几种简单的排序算法代码
在这里提供几种常见排序算法的源代码,供大家参考,如有错误,请指出来,谢谢!
各种排序算法效率分析比较及源代码 C语言实现 各种排序包括: 直接插入排序,折半插入排序,2—路插入排序和表插入排序;希尔排序和链式基数排序;起泡排序,快速排序,归并排序;简单选择排序,树形选择排序和堆...
包含几个最常用的排序算法的源码,以及其比较
几种简单算法的源代码和动画演示,动画演示是用HTML来实现的。
常见的几种排序算法源代码,很详细,很准确
主要的内排序包括冒泡、插入、希尔、堆排序、归并、快速、桶排序等,本源码对其用C语言实现,并且进行了简答的测试,可以准确运行,其算法源码以及测试主程序都在源码文件main.c中
本代码库使用C++实现了几种排序算法(冒泡排序,插入排序,选择排序,快速排序,堆排序,合并排序,希尔排序,基数排序),测试数据可以通过generalRandom.cpp文件产生.各排序算法文件独立,单独编译运行即可.
C语言的几种算法,算是比较有帮助:经典排序算法
几种排序算法的C语言实现源码,集中在一个VC工程中。
直接插入排序(Straight Insertion Sort)是一种简单且古老的排序算法,其基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。12 直接插入排序的算法过程如下: 假设待排序...
1. 一个PPT 用动画演示了 插入排序,直接插入排序,希尔排序,附带讲解。 2. 附带其他几种常用排序的java实现的源码。 3. PPT 还是简洁、美观的,可用作模板。
2.1.5 数据结构的几种存储方式 2.1.6 数据类型 2.1.7 常用的数据结构 2.1.8 选择合适的数据结构解决实际问题 2.2 线性表 2.2.1 什么是线性表 2.2.2 线性表的基本运算 2.3 顺序表结构 2.3.1 准备数据 2.3.2 初始化...
内容索引:VC/C++源码,算法相关,算法 一个基于VC的数组排序算法源码实例,程序中使用了函数指针数组,一共包含四种排序方法:泡沫排序法(bubble)、插入排序法(insertion)、快速排序法(quick)和选择排序法...
对内部选择排序中常用的简单选择排序,树形选择排序,堆排序通过数据交换次数以及各种算法耗时的比较,来对各种算法进行分析比较
5.7 小结:选择一种排序算法 5.8 资源和参考资料 第6章 树 6.1 二叉树 6.1.1 树查找 6.1.2 节点插入 6.1.3 节点删除 6.1.4 二叉查找树的性能 6.1.5 AVL树 6.2 红黑树 6.3 伸展树 ...
这几种排序算法是在顺序存储结构上实现的,因此在排序过程中需要进行大量记录的移动。当记录很大时,时间耗费很大,此时可采用静态链表作存储结构。但是有的排序方法,无法实现表排序。在这种情况下可以进行地址...