您的位置:首页 > 编程语言 > C语言/C++

8.4总结

2016-08-04 19:28 120 查看
#include <stdio.h>//快速查找最大值和最小值

void main(){

     int a[5]={6,2,4,7,3};

     int min = 0;

     for(int i=1;i<5;i++)

     {

     if(a[i]<a[min])

     {

     min=i ;

     }

     }

printf("%d",a[min]);

#include <stdio.h>//随意取5个数,给数组赋值,用两个for循环进行冒泡排序,满足2分查找的前提,数组必须是从小到大排列

#include <stdlib.h>

#include <time.h>

int Sreach();

void main(){

     int a[5]={0,0,0,0,0};

     int b = 0;

   srand(time(0));

   for(int n = 0;n<5;n++){

        b = rand()%100+1;

        a
=b;

   }

   for(int m=0;m<(sizeof(a)/sizeof(int));m++){

       for(int j=1;j<(sizeof(a)/sizeof(int));j++){

          if(a[j]<a[j-1]){                                                 冒泡排序从大到小或者从小到大

              a[j]=a[j]+a[j-1];                                          

              a[j-1]=a[j]-a[j-1];                                        位置的交换

              a[j]=a[j]+a[j-1];

          }

       }

    }

    int key=0;

    printf("%d,%d,%d,%d,%d",a[0],a[1],a[2],a[3],a[4]);

    printf("number:");

    scanf("%d",&key);

    printf("%d",Sreach(a,sizeof(a)/sizeof(int),key));

}   

int Sreach(int a[],int len,int key){

     int start = 0;

     //int len = sizeof(a)/sizeof(int);

     int end = len-1;

   while(start<=end){

     int mid = (start+end)/2;

        if(a[mid]==key){

                return mid;

        }  

        else if(a[mid]<key){

                start = mid+1;

        }

        else {

                end = mid-1;

        }

   }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言