資料結構

沉舟道人發表於2024-04-22

資料結構

#include<stdio.h>
#include<string.h>

void DataMov(int num[],int count,int k)
{
    for (int i=count-1; i>=k; i--)
    {
        num[i+1]=num[i];
    }
}

void DataPrint(int num[],int count)
{
    for (int i = 0; i < count; i++)
    {
        printf("%d ",num[i]);
    }
    printf("\n");
}

int main(int argc, char const *argv[])
{
    int num[15]={2,4,7,11};
    int x=5;
    int count;
    for (count = 1; num[count]>num[count-1]; count++);
    printf("count=%d\n",count);
    DataPrint(num,count);
    if (x < num[0]) {
        DataMov(num,count,0);
        num[0]=x;
        count++;
    }
    else if  (x > num[count-1]) {
        num[count]=x;
       
        count++;
    }
    else {
        int left=0,right=count-1;
        int mid=(left+right)/2;
        int i=0;
        while (right-left!=1)      
        {   
                mid=(left+right)/2;
                if (x>num[mid]) left=mid;
                else  right=mid;
        }
        DataMov(num,count,right);
        num[right]=x;
        count++;  
    }
    DataPrint(num,count);
    return 0;
}

相關文章