?? 直接插入排序基本算法.cpp
字號:
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
const int n=100000;
typedef struct{
int key;
}RedType;
typedef struct{
RedType *r; //r[n+1];
int length;
}SqList;
int random();
void InsertSort(SqList &L);
void main(){
SqList L;
L.r = new RedType[n+1];
L.length=n;
for(int i=1;i<=n;i++) L.r[i].key=random();
long t1,t2;
t1=clock();
InsertSort(L);
t2=clock();
cout<<" 時間: "<<float(t2-t1)/CLK_TCK<<endl;
}
int random(){
int A=48271;
int M=2147483646;
int Q=M/A;
int R=M%A;
static int x=1; int x1;
x1=A*(x%Q)-R*(x/Q);
if(x1>=0) x=x1;
else x=x1+M;
return x;
}
void InsertSort(SqList &L) //直接插入排序__基本算法:
{ //對順序表L作直接插入排序。
for(int i=2;i<=L.length;++i)
if((L.r[i].key < L.r[i-1].key)) { //"<",需將L.r[i]插入有序子表
L.r[0]=L.r[i]; //復(fù)制為哨兵
L.r[i]=L.r[i-1];
for(int j=i-2;(L.r[0].key<L.r[j].key);--j)
L.r[j+1]=L.r[j]; //記錄后移 L.r[j+1]=L.r[0]; //插入到正確位置
}
}//InsertSort */
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -