实验八 排序算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告八排序算法实验

一、实验目的:

1、掌握内部排序方法的策略和排序过程。

2、掌握插入排序、选择排序、快速排序、归并排序算法。

二、实验内容:

1、存储结构类定义与实现:

自定义如下:

public interface LList {

boolean isEmpty();

int length();

T get(int i);

void set(int i,T x);

void insert(int i,T x);

void append(T x);

T remove(int i);

void removeAll();

}

public class SeqList implements LList { private Object[] element;

private int len;

public SeqList(int size){

this.element=new Object[size];

this.len = 0;

}

public SeqList(SeqList list){

this(list.len);

this.len=list.len;

}

public SeqList(){

this(64);

}

public boolean isEmpty(){

return this.len==0;

}

public int length(){

return this.len;

}

public T get(int i){

if(i>=0&&i

return (T)this.element[i];

return null;

}

public void set(int i, T x){

if(x==null)

return;

if(i>=0&&i

this.element[i] = x;

else

throw new IndexOutOfBoundsException(i+""); }

public String toString(){

String str = "(";

if(this.len>0)

str += this.element[0].toString();

for(int i=1;i

str +=","+this.element[i].toString();

return str+")";

}

public void insert(int i, T x){

if(x==null)

return;

if(this.len==element.length){

Object[] temp = this.element;

this.element=new Object[temp.length*2];

for(int j=0;j < temp.length;i++)

this.element[j]=temp[j];

}

if(i<0)

i=0;

if(i>this.len)

i=this.len;

for(int j=this.len-1;j>=i;j--)

this.element[j+1] = this.element[j];

this.element[i]=x;

this.len++;

}

public void append(T x){

insert(this.len,x);

}

public T remove(int i){

if(this.len==0||i<0||i>=len)

return null;

T old = (T)this.element[i];

for(int j=0;j

this.element[j] = this.element[j+1];

this.element[this.len-1]=null;

this.len--;

return old;

}

public void removeAll(){

this.len=0;

}

}

2、插入排序算法:

public class Array {

public static void insertSort(SeqList table){ for(int i=1;i

int temp=table.get(i),j;

for(j=i-1;j>=0&&temp

table.set(j+1, table.get(j));

table.set(j+1, temp);

System.out.print("第"+i+"趟:");

System.out.println(table);

}

}

public static void main(String[] args){

SeqList s1=new SeqList(10);

for(int i=0;i<10;i++){

int c=(int)(Math.random()*100);

s1.insert(i, c);

}

insertSort(s1);

System.out.println(s1.toString());

}

相关文档
最新文档