插入排序程式段

插入排序程式段是一個計算機編程過程名稱。

基本介紹

  • 中文名:插入排序程式段
  • 外文名:Insertion sort program
  • 性質:計算機
  • 類別:編程
基本思想,程式代碼,

基本思想

經過i-1遍處理後,L[1..i-1]己排好序。第i遍處理僅將L[i]插入L[1..i-1]的適當位置p,原來p後的元素一一向右移動一個位置,使得L[1..i]又是排好序的序列。

程式代碼

程式1:
#include "proj3.h"
SortedList::SortedList(int len, double data[]):len(len){
d=new double[len];
for(int k=0; k<len; k++)
d[k]=(data==NULL ? 0.0 : data[k]);
for(int i=0; i<len-1; i++){
int m=i;
for(int j=i; j<len; j++)
if(d[j]<d[m]) m=j;
if(m>i){
double t=d[m];
d[m]=d[i];
d[i]=t;
}
}
}
void SortedList::insert(double data){
double *r=new double[++len];
for(int i=0;d[i]<data&&i<len-1;++i)
r[i]=d[i];
r[i]=data;
for(;i<len-1;++i)
r[i+1]=d[i];
delete []d;
d=r;
}
void SortedList::show()const{ //顯示有序數據表
for(int i=0; i<len-1; i++) cout<<d[i]<<" ", " ";
cout<<d[len-1]<<endl;
}
int main(){
double s[]={5,8,1,2,10,4,7};
SortedList list(7,s);
cout<<"插入前:"<<endl;
list.show();
list.insert(6.0);
list.insert(3.0);
cout<<"插入 6 和 3 後:"<<endl;
list.show();
writeToFile("Out.data",list);
return 0;
}

相關詞條

熱門詞條

聯絡我們