实验八 排序算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
private int len;
public SeqList(int size){
this.element=new Object[size];
this.len = 0;
}
public SeqList(SeqList
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 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()); }