
**
c语言中的排序与查找**
一、排序
- 冒泡法排序
//冒泡法排序代码实现(以升序为例) int BubbleSort(int num[],int n)//传输数组与数据个数(决定排序次数) { for(int i=0;inum[j]) { int bridge; bridge=num[j-1]; num[j-1]=num[j]; num[j]=bridge; } } } }
- 交换法排序
//交换法代码实现(以升序为例)
int ChangeSort(int num[],int n)//传输数组与数据个数(决定排序次数)
{
for(int i=0;inum[j])
{
int bridge;
bridge=num[j];
num[j]=num[i];
num[i]=bridge;
}
}
}
}
- 选择法排序
//选择法代码实现(以升序为例)
int ChoiceSort(int num[],int n)
{
for(int i=0;inum[j])
k=j;//记录最小数下标位置
}
if(k==i);
if(k!=i)
{
int bridge;
bridge=num[i];
num[i]=num[k];
num[k]=bridge;
}
}
}
二、查找
顺序查找(不赘述)(linear search)
二分法查找(必须已经排好序)
int Binary_Search(long num[],long x,int n)//从num[]中n个数据中查找x
{
int low=0,high=n-1;
mid=(low+high)/2;//注意!!!这里建议优化成low+(high-low)/2,以防止数据溢出
do
{
if(xnum[mid]) low=mid+1;
if(x==num[mid]) return mid;
mid=low+(high-low)/2;
}while(low<=high);//循环条件
return -1;//如果找不到,返回-1标记值,因mid不能为负
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)