10.4选择排序 简单选择排序 结 第一趟选择排序的操作为:通过n-1次关键 字之间的比较,从n个记录中选择出关键字最小 的记录,并和第1个记录交换之 总共需要n-1趟选择排序。 4/void SelectSort(SqList &L)( for(i=1; K<Llength; i++) for(k=i, j=i; k<=Llength; k++) if(Lrlj.key >Lr(k. key)j=k; if(i!-j)Lrl←L.rlj;} }/O(n*n) 堆排序 数据结构 堆的定义:n个元素的序列{k1,k2,…,kn}, 当且仅当满足下列关系时,称为堆 大顶堆:k≥kn,kH1 4523349124862 内部排序 小顶堆:k≤kx,k 24|8|6|1234523|918 数 据 结 构 之 内 部 排 序 35 10. 4 选择排序 ¾ 简单选择排序 第一趟选择排序的操作为:通过n-1次关键 字之间的比较,从 n 个记录中选择出关键字最小 的记录,并和第 1 个记录交换之。 总共需要n-1趟选择排序。 void SelectSort(SqList &L){ for(i=1 ; i<L.length ; i++){ for(k=i , j=i ; k<=L.length ; k++) if(L.r[j].key > L.r[k].key) j=k; if (i!=j) L.r[i] L.r[ j] ; } }//O( n*n ) 数 据 结 构 之 内 部 排 序 36 ¾ 堆排序 堆的定义:n个元素的序列{ k1 , k2 , ... , kn }, 当且仅当满足下列关系时,称为堆。 大顶堆: ki≥ k2i , k2i+1 小顶堆: ki≤ k2i , k2i+1