二分法
#include <stdio.h>
#include <stdlib.h>
int erfenfa(int arr[],int low,int high,int key)
{
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(key>arr[mid])
{
low=mid+1;
}
else if(key<arr[mid])
{
high=mid-1;
}
else if(key=arr[mid])
{
return mid;
}
}
return -1;
}
int main(int argc, const char *argv[])
{
int arr[]={3,12,23,43,65,78,99};
int num;
num=erfenfa(arr,0,(sizeof(arr)/sizeof(0))-1,65);
printf("%d\n",num);
return 0;
}
冒泡排序
#include <stdio.h>
#include <stdio.h>
int main(int argc, const char *argv[])
{
char arr[]={4,13,56,2,88,99};
// int n=6;
// int temp;
int len=sizeof(arr)/sizeof(arr[0]);
for(int i=0;i<len-1;i++)
{
for(int j=0;j<(len-1)-i;j++)
{
if(arr[j]<arr[j+1])
{
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=0;i<len;i++)
{
printf("%d\t",arr[i]);
}
putchar(10);
return 0;
}
选择排序
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char arr[]={4,13,56,2,88,99};
int len = sizeof(arr)/sizeof(arr[0]);
for(int i=0;i<len-1;i++)
{
int mi=i;
for(int j=i+1;j<len;j++)
{
if(arr[mi]<arr[j])
{
mi=j;
}
}
if(arr[mi]!=arr[i])
{
int temp =arr[mi];
arr[mi]=arr[i];
arr[i]=temp;
}
}
for(int i=0;i<len;i++)
{
printf("%d\t",arr[i]);
}
putchar(10);
return 0;
}