✅ 操作成功!

快速排序c语言

发布时间:2023-06-16 作者:admin 来源:文学

快速排序c语言

快速排序c语言

-

2023年3月20日发(作者:美国大师漆)

c语⾔对随机数进⾏快速排序,C语⾔快速排序与⼆分查找算法

⽰例

本⽂实例讲述了C语⾔⼆分排序与查找算法。分享给⼤家供⼤家参考,具体如下:

题⽬:⾸先产⽣随机数,再进⾏快速排序,再进⾏⼆分查找。

实现代码:

#include

#include

#include

voidquiksort(inta[],intlow,inthigh)

{

inti=low;

intj=high;

inttemp=a[i];

if(low

{

while(i

{

while((a[j]>=temp)&&(i

{

j--;

}

a[i]=a[j];

while((a[i]<=temp)&&(i

{

i++;

}

a[j]=a[i];

}

a[i]=temp;

quiksort(a,low,i-1);

quiksort(a,j+1,high);

}

else

{

return;

}

}

intsearch(intx,intv[],intn){

intlow,high,mid;

low=0;

high=n-1;

while(low<=high){

mid=(low+high)/2;

if(x

high=mid-1;

}

elseif(x>v[mid]){

low=mid+1;

}

else{

returnmid;

}

}

return-1;

}

intmain(){

intarry[100];

inti,j;

srand((unsigned)time(NULL));//产⽣不同的随机数

for(i=0;i<100;i++)

{

j=rand()%100;

//if(i%2==0)//产⽣负数

//j=-j;

arry[i]=j;

}

intlocation;

intnumber;

quiksort(arry,0,99);//随机数先进⾏排序

for(i=0;i<100;i++)

{

printf("%d",arry[i]);

}

printf("n");

printf("请输⼊你要查找的数字");

scanf("%d",&number);

location=search(number,arry,100);

printf("%dn",location);

return0;

}

⼼得与体会:

⼆分查找⽐较容易理解,就是折半查找法,所以要求数据必须是有序数列。不断⽐较中间值。

快速排序是应⽤了递归,⾸先确定⼀个关键数据,再把⽐他⼤的放到后⾯,⽐他⼩的放到前⾯,再分别对这两部分进⾏同样的操作。

希望本⽂所述对⼤家C语⾔程序设计有所帮助。

时间:2018-01-22

👁️ 阅读量:0