2 回答

TA貢獻1856條經驗 獲得超5個贊
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#define N_Ten 30000
#define switcha(a,b) {int temp;temp=b,b=a,a=temp;}?
void Insert_Sort(int a[],long n);
void sw(int c,int b);
int main(void)
{
clock_t start,end;
srand(time(NULL));
int a[N_Ten],i;
for(i=0;i<N_Ten;i++)
{
a[i]=(rand()%500);
}
printf("產生的號碼是: ");
// for(i=0;i<N_Ten;i++)
// printf("%d ",a[i]);
start=clock();
Insert_Sort(a,N_Ten);
printf("\n");
end=clock();
printf("排序時間是: %ld毫秒",end-start);
// printf("排序的號碼是: ");
// for(i=0;i<N_Ten;i++)
// printf("%d ",a[i]);
printf("\n");
return 0;
}
void Insert_Sort(int a[],long n)
{
int b=1,c=2,temp0;
int i=1,j,temp;
while(i<n) //和數組循環移位的操作方法類似,先把a[i]的值賦給temp保存,判斷大小后再移位,實現數值交換;
{
j=i;
temp=a[i];
while(temp<a[j-1])
{
a[j]=a[j-1];
if(j>0)
j--;
else
break;
}
a[j]=temp;
i++;
// temp0=b;
// b=c;
// c=temp0;
switcha(c,b); //宏定義的函數;
//printf("\n");
// sw(c,b);
}
}
void sw(int c,int b) //函數;
{
int temp0;
temp0=b;
b=c;
c=temp0;
}

TA貢獻1802條經驗 獲得超5個贊
hi, 這問題特簡單
var array = new Array();這個是全局變量
你改成 var array; 不賦值
調 getArray 這個方法時再new 下 ,其他不變
下面我改過的code, 你再不行,繼續找我
var array ;
// getArray(6,33,1); //6是生成6個隨機數,33和1是指隨機生成數是從33到1的數
function getArray(count,maxs,mins)
{
array= new Array();
while(array.length < count)
{
var temp = getRandom(maxs,mins);
if(!serch(array,temp))
{
array.push(temp);
}
}
return array;
}
添加回答
舉報