C程序:
#include "stdio.h"
#define N 10
/* 起泡法排序 */
void BubbleSorting(int arr[], int n)
{
int temp;
for(int i=0; i { for(int j=0; j { if(arr[j] < arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } //二分查找,查找成功返回位置;否则插入该数,返回该数的位置 int BinarySearching(int arr[], int n, int key) { int low = 0; int high = n - 1; int mid; int i; while(low <= high) { mid = (low + high) / 2; if(arr[mid] == key) { return mid; } else if(arr[mid] < key) { high = mid - 1; } else { low = mid + 1; } } for(i=n-1; i>=mid; i--) { arr[i+1] = arr[i]; } arr[mid] = key; return mid; } void main() { int arr[2*N]; int i; int key; int pos; printf("请输入十个整数:"); for(i=0; i { scanf("%d", &arr[i]); } BubbleSorting(arr, N); for(i=0; i { printf("%d ", arr[i]); } printf("\n"); printf("待查找数:"); scanf("%d", &key); pos = BinarySearching(arr, N, key); for(i=0; i { printf("%d ", arr[i]); } } 运行效果:
#include "stdio.h"
void input(int *p){
int i;
for(i=0;i<10;scanf("%d",p+i++));
}
void sort(int *p){
int i,j;
for(i=0;i<10;i++)
for(j=0;j<9;j++)
if(p[j]p[j]^=p[j+1],p[j+1]^=p[j],p[j]^=p[j+1];
}
int search(int *p,int n){
int i;
for(i=0;i<10;i++)
if(p[i]==n)
return i;
for(i=9;p[i]-1;p[i+1]=p[i--]);
p[i+1]=n;
return -i-2;
}
int main(void){
int a[11],i,n;
printf("Input 10 integers...\n");
input(a);
for(sort(a),i=0;i<10;printf("%d ",a[i++]));
printf("\nInput n(int)...\n");
scanf("%d",&n);
i=search(a,n);
if(i>=0) printf("There are %d, the subscript is %d\n",n,i);
else printf("%d is inserted after the subscript is %d\n",n,-i-1);
printf("\n");
return 0;
}