
快速排序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