分享

最常用的四种算法

 玉诗 2015-05-13
素数
#include<stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=2;i<=n-1;i++)
if(n%i==0)
break;
if(i<n)
printf("%d is not.\n",n);
else printf("%d is.\n",n);
return 0;
}

 
选择排序

#include<stdio.h>
void sort(int v[],int n){
for(int i=0; i<n; i++){
 int min = v[i];
 int temp; 
 int index = i; 
 for(int j=i+1;j<n;j++){  
  if(v[j] < min){  
   min = v[j];    
   index = j;   
  }       
 }           
 temp = v[i];
v[i] = min;
v[index]= temp;
  }      
}

int main()
{
 int arr[]={7,8,9,4,5,6,1,2,3};
 int i;
 sort(arr,9);
    for(i=0;i<9;i++)
 printf("%d ",arr[i]);
 printf("\n");
 return 0;
}

 
插入排序
#include<stdio.h>
void InsertSort(int arr[],int d)
{
    int i, j;
    int n = d;
    int target;
 
    //假定第一个元素被放到了正确的位置上
    //这样,仅需遍历1 - n-1
    for (i = 1; i < n; i++)
    {
        j = i;
        target = arr[i];
 
        while (j > 0 && target < arr[j - 1])
        {
            arr[j] = arr[j - 1];
            j--;
        }
 
        arr[j] = target;
    }
}

int main()
{   int i;
 int arr[]={5,9,3,4,7,8,2,6,1};
 InsertSort(arr,9);
 for(i=0;i<9;i++)
  printf("%d ",arr[i]);
 printf("\n");
 return 0;
}

 
冒泡排序
#include<stdio.h>
int main(){ 
int a[10]={7,8,9,4,5,6,1,2,3,0};
int i,j,t;
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多