这是c语言求二分插入排序的程序,c语言两种排序方法

本文目录一览:

C语言怎么用二分查找插入排序

进行二分查找的前提是数组已排序,这里假定数组递增排序。

每次查找都将待查找数num与处于数组中间位置a[mid]的数进行比较,num a[mid]则在mid之前的元素中进行查找,反之在mid之后的元素中进行查找。

在函数中使用low, mid, high来对待查找的范围来进行标记。

参考代码如下:

/*整数查找*/

void binsearch( int num, int a[], int length )        /*num为待查找数字,length为数组a的长度*/

{

    int low, mid, high;

    low = 0;

    high = length – 1;

    while( low = high )

    {

        mid = ( low + high ) / 2;

        if( a[mid]  num )

            high = mid – 1;

        else if( a[mid]  num )

            low = mid + 1;

        else

            return mid;

    }

    return -1        /*未查找到num返回-1*/

}

C语言二分法插入已排序的数组中

#includestdlib.h

void sort(int a[],int n){ /*排序函数,要使用二分法查找就必须对数组进行排序*/

int i,k;

for(i=0;in;i++){

int min=i;

for(k=i+1;kn;k++)

if(a[min]a[k])min=k;

if(i!=min){

a[min]+=a[i];/*这里是运用加减法交换两个数*/

a[i]=a[min]-a[i];

a[min]-=a[i];

}

}

}int find(int a[],int n,int key){/*二分法查找;参数:数组名,数组长度,查找关键字*/

int min=0,max=n-1;/*二分法查找头尾变量*/

while(minmax){/*如果最头的变量值大于最尾变量的值,则查找不到,查找失败*/

int cen = (min+max)/2;

if(a[cen]==key) return cen;/*如果查到,则返回关键字在排序数组的下标*/

if(cen==min || cen==max)break;/*如果中间变量等于头尾任一个变量,同样查找失败*/ if(a[cen]key) max=cen;

else min=cen; }

return -1;

}

void main(){/*主程序只是为了证明两个函数的可行性,可以自己编写*/

int a[]={14,10,25,36,87,95,10,12,13,8},i;

sort(a,10);

i=find(a,10,11);

if(i!=-1)

printf(“be found”);

else

printf(“no found”);

getch();

}

这是C语言求二分插入排序的程序,有问题,求教,急急急!!!

#include stdio.h

int main()

{

    int a[11]; //a[0]作为哨兵,从a[1]到a[10]是真正数据

    int low,mid,high;

    int x;

    int i,j,n;

    n=10;

    for(i=1; i=n; i++)

    {

        a[i]=0;

    }

    i=1;

    printf(“\n要插入的数是 (还有%d个):”,n+1-i);

    scanf(“%d”,x);

    a[i]=x;

    printf(“x=%d\n”,x);

    printf(“排列后 “);

    for(j=1; j=n; j++)

    {

        printf(” %d”,a[j]);

    }

    printf(“\n”);

    for(i=2;  i=n; i++)

    {

        printf(“\n要插入的数是 (还有%d个):”,n+1-i);

        scanf(“%d”,x);

        a[i]=x;

        a[0]=a[i]; //a[0]作为哨兵

        low=1;

        high=i-1;

        while(low=high)

        {

            mid=(low+high)/2;

            if(a[mid]  a[0])

            {

                high=mid-1;

            }

            else

            {

                low=mid+1;

            }

        }

        //通过上述的折半查找,得出high值

        //数据往后移动

        for(j=i-1 ; j=high+1 ; j–)

        {

            a[j+1]=a[j];

        }

        //a[0]就是x,将x插入正确的位置

        a[high+1]=a[0];

        printf(“\nx=%d\n”,x);

        printf(“排列后 “);

        for(j=1; j=n; j++)

        {

            printf(” %d”,a[j]);

        }

        printf(“\n”);

    }

    printf(“\n我是答案;”);

    for(i=1; i=n; i++)

    {

        printf(” %d”,a[i]);

    }

    return 0;

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/154184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-15 03:25
下一篇 2024-11-15 03:25

相关推荐

  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python购物车程序

    Python购物车程序是一款基于Python编程语言开发的程序,可以实现购物车的相关功能,包括商品的添加、购买、删除、统计等。 一、添加商品 添加商品是购物车程序的基础功能之一,用…

    编程 2025-04-29
  • 爬虫是一种程序

    爬虫是一种程序,用于自动获取互联网上的信息。本文将从如下多个方面对爬虫的意义、运行方式、应用场景和技术要点等进行详细的阐述。 一、爬虫的意义 1、获取信息:爬虫可以自动获取互联网上…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29
  • Python一元二次方程求解程序

    本文将详细阐述Python一元二次方程求解程序的相关知识,为读者提供全面的程序设计思路和操作方法。 一、方程求解 首先,我们需要了解一元二次方程的求解方法。一元二次方程可以写作: …

    编程 2025-04-29

发表回复

登录后才能评论