zoukankan      html  css  js  c++  java
  • 冒泡排序、二分查找

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    #define MAX 500
    
    void sort(int *);
    int fond(int *, int, int, int);
    
    int main () {
    	int arr[MAX], fon;
    	srand(time(0));
    	for (int i =0; i < MAX; ++i) arr[i] = rand()%1000;
    	sort(arr);
    	fon = (rand() % 1000) / 2;
    	printf("
    查找:%d
    %d
    ", fon, fond(arr, fon, 0, MAX)); // 找到返回排序后的位置,未找到返回-1
    	return 0;
    }
    
    int fond (int *arr, int s, int left, int right) {
    	if (left > right) return -1;
    	int mid = (left + right) / 2;
    	if(arr[mid] == s) return mid;
    	arr[mid] > s ? right = mid - 1 : left = mid + 1;
    	fond(arr, s, left, right);
    }
    
    void sort(int *arr) {
    	for (int i = 0; i < MAX; ++i)
    		for (int j = 0; j < MAX - 1 - i; ++j) {
    			if (arr[j] > arr[j + 1]) {
    				arr[j] ^= arr[j + 1];
    				arr[j + 1] ^= arr[j];
    				arr[j] ^= arr[j + 1];
    			}
    		}
    	for (i = 0; i < MAX; ++i) printf("%d ", arr[i]);
    }
    
  • 相关阅读:
    178
    177
    176
    175
    To Do List
    洛谷 P4198 楼房重建
    斯特林数
    容斥原理
    组合数学笔记
    激光相机数据融合(6)--激光相机标定
  • 原文地址:https://www.cnblogs.com/hhhahh/p/14119201.html
Copyright © 2011-2022 走看看