亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

您現在的位置是:蟲蟲下載站 > 資源下載 > 源碼 > c語言算法排序

c語言算法排序

  • 資源大?。?/b>14 K
  • 上傳時間: 2017-04-01
  • 上傳用戶:糖兒水嘻嘻
  • 資源積分:2 下載積分
  • 標      簽: c語言 算法 排序

資 源 簡 介

1.Describe a Θ(n lg n)-time algorithm that, given a set S of n integers and another integer x, determines whether or not there exist two elements in S whose sum is exactly x. (Implement exercise 2.3-7.)


#include<stdio.h>
#include<stdlib.h>
void merge(int arr[],int low,int mid,int high){
     int i,k;
     int *tmp=(int*)malloc((high-low+1)*sizeof(int));
     int left_low=low;
     int left_high=mid;
     int right_low=mid+1;
     int right_high=high;
     for(k=0;left_low<=left_high&&right_low<=right_high;k++)
     {
     if(arr[left_low]<=arr[right_low]){
                                       tmp[k]=arr[left_low++];
                                       }
     else{
          tmp[k]=arr[right_low++];
          }

     
     if(left_low<=left_high){
                             for(i=left_low;i<=left_high;i++){
                                                              tmp[k++]=arr[i];
                                                              }
                             }
      if(right_low<=right_high){
                             for(i=right_low;i<=right_high;i++)
                                                               tmp[k++]=arr[i];
                                                       }
                             for(i=0;i<high-low+1;i++)
                                                      arr[low+i]=tmp[i];
     
}

void merge_sort(int a[],int p,int r){
     int q;
     if(p<r){
             q=(p+r)/2;
             merge_sort(a,p,q);
             merge_sort(a,q+1,r);
             merge(a,p,q,r);
             }
     }
int main(){
    int a[8]={3,5,8,6,4,1,1};
    int i,j;
    int x=10;
    merge_sort(a,0,6);
    printf("after Merging-Sort:\n");
    for(i=0;i<7;i++){
                     printf("%d",a[i]);
                     }
    printf("\n");
    i=0;j=6;
    do{
                 
                 if(a[i]+a[j]==x){
                                 printf("exist");
                                 break;
                                 }
                 if(a[i]+a[j]>x)
                                j--;
                 if(a[i]+a[j]<x)
                                i++;
                      }while(i<=j);
    if(i>j) 
            printf("not exist");
    system("pause");
    return 0;
    }

相 關 資 源

您 可 能 感 興 趣 的

主站蜘蛛池模板: 洞口县| 长乐市| 射洪县| 驻马店市| 临沂市| 桂阳县| 通州市| 日土县| 兰考县| 都兰县| 特克斯县| 桑植县| 民乐县| 凯里市| 红河县| 芮城县| 清流县| 东乡族自治县| 上思县| 司法| 新龙县| 卓尼县| 宝坻区| 上林县| 苍山县| 舞阳县| 崇仁县| 江津市| 凭祥市| 漳浦县| 乐平市| 于都县| 武定县| 扶风县| 儋州市| 营山县| 灵寿县| 吉林省| 大渡口区| 阿克| 阿克苏市|