快排和二分查找的原理就不说了,网上一搜一大堆,这里主要是自己编写的快排、二分与系统自带的快排、二分代码,一般面试都会出冒泡,所以冒泡是才是最重要的。系统自带的快排函数在编写代码的时候用着挺方便的,代码如下:
// 快速排序
#include <stdio.h>
void q_sort(int arr[],int low,int high);
int main()
{
intarr[10] = {0};
inti = 0;
printf("输入 10 个整数:\n");
for(i= 0;i < 10;i++)
scanf("%d",&arr[i]);
q_sort(arr,0,9);
for(i= 0;i < 10;i++)
printf("%d",arr[i]);
printf("\n");
return0;
}
void q_sort(int arr[],int low,int high)
{
inti = 0,j = 0; //i-低 j-高
intbase = 0; // 基数
inttemp = 0;
if(low>= high) // 递归终止
return;
i= low;
j= high;
base= arr[low];
while(i< j){
while(arr[j]> base)// 高->低
j--;
temp= arr[j];
arr[j]= arr[i];
arr[i]= temp;
while(arr[i]< base)// 低->高
i++;
temp= arr[j];
arr[j]= arr[i];
arr[i]= temp;
if(i<j&& arr[i]==arr[j])
j--;
}
q_sort(arr,low,i-1);
q_sort(arr,i+1,high);
}
/***************************************
auth:肖乔
func:二分查找
***************************************/
#include<stdio.h>
#define N 5
int main(){
inti,j,a[N],t;
inthig,low,mid,k;
printf("请输入%d个整数:",N);
for(j=0;j<=N-1;j++){