个人总结,欢迎指正~
二分法:
#include <stdio.h>
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int num,max,min;
printf("Input a num which you wang to find out\n");
scanf("%d",&num);
max = sizeof(a);
min = 0;
while(num!=a[(max+min)/2]){
if(num>a[(max+min)/2])
{
min = (max+min)/2;
}else{
max = (max+min)/2;
}
if(min>=max){
printf("error\n");
break;
}
}
printf("it is :%d\n",(max+min)/2);
return 0;
}
冒泡法排序:
int main()
{
int a[10]={23,22,46,5,32,11,2,89,34,2};
int num = sizeof(a)/sizeof(int);
int i,j,temp;
printf("%d\n",num);
for(i=num-1;i>0;i--)
{
for(j=0;j<i;j++){
if(a[j]>a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
return 0;
}
大小端验证:
#include <stdio.h>
int main()
{
int a=0x1234;
char *p=(char *)&a;
printf("%x\n",*p);
if(*p==0x12)
printf("big\n");
else
printf("small\n");
return 0;
}