正在加载图片...
《数据结构》实验指导/实验九:排序方法的实现 3 else return"空串"; 各种排序算法 public string Insertsorto ∥)R|0.n1按递增有序进行直接插入排序 J string mystr=; RecT pe tmp; h;i++) 右向左在有序区R01中找R的插入位置 while gj>=0&&RIjI. key>tmp. key) RIj+1=riil; 将关键字大于R[key的元素后移 1j+1l 在j+1处插入R[ for (int k=0; k- mystr+= RIk key ToString+"; return mvstr public string QuickSort ∥)R0.n-的元素按递增进行快速排序 1(0, length-1) private void QuickSortl(int s, int t) ∥)对Rst的元素进行快速排序 RecType tmp; if(s< t 区间内至少存在两个元素的情况 s+="R|"+s. ToString+","+t. ToString+"|区间排序:"; Rs; 用区间的第1个元素作为基准 while(i!=j) ∥从区间两端交替向中间扫描直至为止 while(>i&& Rijn. ke 管理科学与工程学科/共5页第3页《数据结构》实验指导 / 实验九:排序方法的实现 3 管理科学与工程学科 / 共5页,第3页 else return "空串"; } //---------------各种排序算法-------------------------------------------------- public string InsertSort() //对 R[0..n-1]按递增有序进行直接插入排序 { int i, j; string mystr = ""; RecType tmp; for (i = 1; i < length; i++) { mystr += "i=" + i.ToString() + ": "; tmp = R[i]; j = i - 1; //从右向左在有序区 R[0..i-1]中找 R[i]的插入位置 while (j >= 0 && R[j].key > tmp.key) { R[j + 1] = R[j]; //将关键字大于 R[i].key 的元素后移 j--; } R[j + 1] = tmp; //在 j+1 处插入 R[i] for (int k = 0; k < length; k++) mystr += R[k].key.ToString() + " "; mystr += "\r\n"; } return mystr; } public string QuickSort() //对 R[0..n-1]的元素按递增进行快速排序 { sstr = ""; QuickSort1(0, length - 1); return sstr; } private void QuickSort1(int s, int t) //对 R[s..t]的元素进行快速排序 { int i = s, j = t; RecType tmp; if (s < t) //区间内至少存在两个元素的情况 { sstr += "R[" + s.ToString() + ".." + t.ToString() + "]区间排序: "; tmp = R[s]; //用区间的第 1 个元素作为基准 while (i != j) //从区间两端交替向中间扫描,直至 i=j 为止 { while (j > i && R[j].key >= tmp.key) j--;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有