标签:play word 查找 class 个人 learning 个数 path 左右
matching & ranking
AltaVista:foward index 文档到关键词 / inverted index 关键词到文档
Google:PageRank
low>high
时,判断为未找到//递归实现
int BinSearch(long num[],long x,int low,int long)
{
int mid=(high-low)/2+low; //防止数据溢出
if(low>high) return -1;
if(x>num[mid]) return BinSearch(num,x,mid+1,high);
else if(x<num[mid]) return BinSearch(num,x,low,mid-1);
else return mid;
}
将数据作为键值,数组需要为整数
void FindMin(int x[],int n)
{
int temp,j,i,key,min;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(x[j]<x[k]) //升序
k=j;
}
if(k!=i)
{
temp=x[k];
x[k]=x[i];
x[i]=temp;
}
}
}
#include<stdio.h>
#include<stdlib.h>
void Swap(int *a, int *b);
void BubbleSort(int a[],int n);
int main(void)
{
int a[] = {5,2,47,2,0,1};
int n = sizeof(a)/sizeof(int);
BubbleSort(a,n);
int i;
for(i=0;i<n;i++) printf("%3d",a[i]);
return 0;
}
void BubbleSort(int a[], int n)
{
int i, j;
for(i=0;i<n-1;i++)
for(j=n-1;j>=1;j--)
if(a[j-1]>a[j]) Swap(&a[j-1],&a[j]);
}
void Swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
#include<stdio.h>
#include<stdlib.h>
void QuickSort(int a[],int left,int right);
void Swap(int *a,int *b);
int QuickPartition(int a[],int left,int right);
int main(void)
{
int a[] = {5,2,47,2,0,1};
int n = sizeof(a)/sizeof(int);
QuickSort(a,0,n-1);
int i;
for(i=0;i<n;i++) printf("%3d",a[i]);
return 0;
}
void QuickSort(int a[],int left, int right)
{
int t;
if(left<right)
{
t = QuickPartition(a,left,right);
QuickSort(a,left,t-1);
QuickSort(a,t+1,right);
}
}
int QuickPartition(int a[],int left,int right)
{
int i = left, j = right, base = a[left];
while(i<j)
{
while(i<j && a[j]>=base) j--;
while(i<j && a[i]<=base) i++;
if(i<j) Swap(&a[i],&a[j]);
}
Swap(&a[i],&a[left]);
return i;
}
void Swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
思路:边找边移
void InsertSort(int a[],int n)
{
int i,j,x;
for(j=1;j<n;j++)
{
x=a[j];
for(i=j-1;i>=0&&a[i]>x;i--)
{
a[i+1]=a[i];
}
a[i+1]=x;
}
}
标签:play word 查找 class 个人 learning 个数 path 左右
原文地址:https://www.cnblogs.com/La-pu-ta/p/12056440.html