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. 插入排序(InsertionSort.c): 插入排序是一种简单的直观算法,适用于小规模或部分有序的数据集。它的工作原理类似于我们日常生活中的整理扑克牌。首先...
总的来说,选择哪种排序算法取决于数据的特性和需求。对于小规模数据,直接插入或选择排序可能更合适,而大规模数据或对性能有较高要求时,快速排序和堆排序通常是更好的选择。如果数据基本有序,直接插入和冒泡排序...
该程序包含了几种算法,读者可对此进行试验
本文将详细讲解标题中提到的几种排序算法:插入排序、堆排序,以及快速排序和计数排序,这些都是在实际编程中经常使用的算法。 1. **插入排序**(Insertion Sort) 插入排序是一种简单直观的排序算法,它的工作...
在这个名为"快速排序算法 源代码"的资源中,包含了一个名为`QuickSortOriginal.cpp`的C++源代码文件,它实现了一个经典的快速排序算法。C++是一种通用的、面向对象的编程语言,因其高效性、灵活性和强大的模板系统而...
本文将详细解析标题中提及的五种排序算法:位与、选择、冒泡、插入以及qsort,并结合在VC6.0环境下进行编译实践的情况。 1. **位与排序**: 位与操作符(`&`)在某些特定场景下可用于排序,例如在整数数组中,通过...
(1)直接插入排序算法验证。 (2)快速排序算法验证。 (3)直接选择排序算法验证。 几种简单的排序算法代码
本资源提供了几种最常见的排序算法的源代码,便于学习和比较。以下是对这些算法的详细讲解: 1. 冒泡排序(Bubble Sort): 冒泡排序是最基础的排序方法,通过不断交换相邻的逆序元素来逐步实现排序。它的时间...
八大经典排序算法总结和源代码 在计算机科学中,排序算法是最基本也是最重要的算法之一。排序算法的性能直接影响到整个系统的性能。今天,我们将总结八大经典排序算法,并提供C++实现的源代码。 一、稳定排序和...
在本压缩包中,我们主要关注的是几种简单的算法,它们都是用C语言编写的,并且配合有HTML动画演示,帮助理解和学习。以下是这些算法的详细解释: 1. 插入排序(Insertion Sort) 插入排序是一种基础且直观的排序...
各种排序算法效率分析比较及源代码 C语言实现 各种排序包括: 直接插入排序,折半插入排序,2—路插入排序和表插入排序;希尔排序和链式基数排序;起泡排序,快速排序,归并排序;简单选择排序,树形选择排序和堆...
以下是对Java中几种常见排序算法的详细解析: 1. 冒泡排序: 冒泡排序是一种简单直观的排序算法,通过不断交换相邻的不正确顺序元素来达到排序的目的。它的时间复杂度为O(n^2),在处理大量数据时效率较低。尽管效率...
源代码中包含了这六种排序算法的实现,每个算法都有相应的函数,用于接收数组和其长度作为参数,返回排序后的数组。此外,还包含时间统计和比较/移动次数统计的辅助函数,以记录算法执行的过程。 六、性能分析 在...
本文将详细讨论标题中提到的几种排序算法:快速排序、直接插入排序、希尔排序、堆排序、归并排序、简单选择排序以及冒泡排序,并通过它们在处理3000个数时的表现来对比分析其性能。 1. **快速排序**:由C.A.R. ...
直接插入排序是一种基础且简单的排序算法,它的工作原理类似于我们日常生活中的整理扑克牌。...通过阅读和实践这个源代码,你可以深入理解排序算法的基础工作原理,并为进一步学习更复杂的排序算法打下坚实的基础。
在`array_sort`这个项目中,可能包含了实现这些排序算法的C++源代码文件和Verilog模块。通过阅读和分析这些代码,可以深入理解各种排序算法的内部工作原理,以及如何在不同层面(软件和硬件)实现它们。同时,这也为...
下面将详细阐述这四种排序算法的原理、实现方式以及它们各自的优缺点。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,通过不断交换相邻的两个不正确顺序的元素,逐步将最大的元素“冒”到数组的...
本资源"**C语言几种排序算法实现.zip**"可能包含了一系列用C语言编写的经典排序算法,如冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序等。下面将对这些常见的排序算法进行详细介绍。 1. **冒泡排序...
希尔排序(Shell Sort)是一种基于插入排序的快速排序算法,由Donald Shell于1959年提出。它的主要思想是将待排序的元素按照一定的间隔分组,对每组进行插入排序,然后逐渐减小间隔,直到间隔为1,此时整个序列视为...