精华内容
下载资源
问答
  • c语言数组插入法排序
    2022-04-09 21:30:46

    十大排序经典排序算法

    //插入排序
    #include<stdio.h>
    int main()
    { 
    	int x[5] = {26,1,8,45,22};
    	int i, j;
    	int temp;//临时变量,做记录
    	for (i = 1; i < 5; i++)
    	{
    		temp = x[i];
    		for (j = i; j > 0 && x[j - 1] > temp; j--)
    			x[j] = x[j-1];//向后移一位
    		x[j] = temp;
    	}
    	for (i = 0; i < 5; i++)
    		printf("%d\t ",x[i]);
    	return 0;
    }
    	
    

    更多相关内容
  • C语言数组排序插入法排序

    千次阅读 2021-11-11 12:42:13
    插入法相对较复杂,基本原理是抽出一个数据,在前面数据中寻找相应的位置插入,然后继续下一个数据,直到排序完成 以9、6、15、4、2为例来进行插入法排序 元素[0] 元素[1] 元素[2] 元素[3] 元素[4...

    插入法相对较复杂,基本原理是抽出一个数据,在前面数据中寻找相应的位置插入,然后继续下一个数据,直到排序完成

    以9、6、15、4、2为例来进行插入法排序

    元素[0]元素[1]元素[2]元素[3]元素[4]
    初始值961542
    第1次9

    第2次

    69
    第3次6915
    第4次46915
    结果246915

    从表中可知,第一次排序将第一个元素放在首位,然后取出第二元素与其比较,如果小于第一个数则放在第一个数左边,反之则放在右边。以此类推,将元素逐个取出与前面的相比较,直到最后一个元素找到相应的位置放入

    下面通过代码实现

    #include<stdio.h>
    int main()
    {
    	int arr[10];                      /*定义一个10个元素的数组*/ 
    	int i,j,temp,pos;                 /*temp记录最小值,pos记录最小值位置*/
    	for(i=0;i<=9;i++)                 /*输入各个数字*/
    	{
    		scanf("%d",&arr[i]);
    	}
    	for(i=1;i<10;i++)                  /*从数组的第二个元素开始循环*/
    	{
    		temp=arr[i];                  /*设置插入值*/ 
    		pos=i-1;                      /*记录插入值前一个位置*/ 
    		while(pos>=0&&temp<arr[pos])  /*与前面数逐个比较寻找插入值的位置*/ 
    		{
    			arr[pos+1]=arr[pos];      /*插入数值*/ 
    			pos--;
    		}
    		arr[pos+1]=temp;
    	}
    	for(i=0;i<=9;i++)                  /*输出排序后的数组*/
    	{
    		printf("%d ",arr[i]);
    	}
    	return 0;
     } 

    插入法排序共需要进行n-1次取出元素并寻找位置插入,因此当序列较为有序时,插入排序有较快的运算速度

    展开全文
  • 直接插入排序,是指将无序序列中的各元素依次插入到已经有序的数组中。 假设数组中前i-1元素已经有序,现在要将线性表中第i个元素插入到前面的有序子表中,插入过程如下: 以长度为n=8的序列(13,6,1,31,9,27...

    (只是一个数组题目罢了)

    直接插入排序,是指将无序序列中的各元素依次插入到已经有序的数组中。

    假设数组中前i-1元素已经有序,现在要将线性表中第i个元素插入到前面的有序子表中,插入过程如下:

    以长度为n=8的序列(13,6,1,31,9,27,5,11)的插入排序过程做示范: 第1趟:将数组第2个元素6向前插入后,则数组中元素为(6,13,1,31,9,27,5,11); 第2趟:将数组第3个元素1向前插入后,则数组中元素为(1,6,13,31,9,27,5,11); 第3趟:将数组第4个元素31向前插入后,则数组中元素为(1,6,13,31,9,27,5,11); …… 第7趟:将数组第8个元素11向前插入后,则数组中元素为(1,5,6,9,11,13,27,31); 总之,共执行7趟操作,可将有n=8个元素的数组排成有序序列。

    插入排序从第二个数开始,拿出第二个数向前进行插入排序,一直到最后一个数向前做插入排序,要求输出每趟插入排序的结果。

    测试输入

    10

    47 47 21 69 2 8 76 50 9 47

    预期输出:

    47 47 21 69 2 8 76 50 9 47

    21 47 47 69 2 8 76 50 9 47

    21 47 47 69 2 8 76 50 9 47

    2 21 47 47 69 8 76 50 9 47

    2 8 21 47 47 69 76 50 9 47

    2 8 21 47 47 69 76 50 9 47

    2 8 21 47 47 50 69 76 9 47

    2 8 9 21 47 47 50 69 76 47

    2 8 9 21 47 47 47 50 69 76

    提示: 如果有10个整数,要求输出每趟插入排序共9趟的结果。

    这里我调用了自定义函数来实现程序,真正编写时可以不用函数。具体怎么做,就请读者自己思考啦。

    编写程序:

    #include<stdio.h>
    #define N 100
    int ONE (int a[],int n)
    {
    	int i,m;
    	for (m=2;m<n+1;m++)
    	{
    		a[0]=a[m];
    		for(i=m-1;i>=1;i--)
    		{
    			if (a[0]<a[i])
    				a[i+1]=a[i];
    			else break;
    		}
    		a[i+1]=a[0];
    		for(i=1;i<=n;i++)
    			printf("%d ",a[i]);
    		printf("\n");
    	}
    	
    }
    int main()
    {
    	int a[N],n,i;
    	scanf ("%d",&n);
    	for (i=1;i<=n;i++)
    		scanf ("%d",&a[i]);
    	printf ("\n"); 
    	ONE(a,n);
    	return 0;
    }

    运行结果:


     运行成功!

    展开全文
  • C语言数组+冒泡排序

    万次阅读 多人点赞 2019-02-03 17:17:58
    C语言数组

    C语言数组+冒泡排序

    一、数组知识点
    在这里插入图片描述
    二、冒泡排序
    从大到小基本思想: 每趟将相邻两个数字依次比较,将大的调到前面,最终每趟会将最小的沉到最后(这也是起名为冒泡的原因,大的向上冒泡,小的向下沉)。如果有n个数字,则要进行n-1趟比较,第一趟比较中要进行n-1次的两两比较,在第i趟要进行n-1-i次的两两比较。

    示例代码:

    //把一个整数插入从小到大排好序的数组中,要求新的数组仍然满足从小到大的顺序
    int data[10]={66,33,126,128,888,10,67,54,20,16};
    	int temp=0;
    	for(int i=0;i<10-1;i++)
    		for(int j=0;j<10-1-i;j++)
    			if(data[j]<data[j+1])
    			{
    				temp=data[j];
    				data[j]=data[j+1];
    				data[j+1]=temp;
    			}
        printf("数据从大到小排序如下:\n");
    	for(i=0;i<10;i++)
    		printf("%d ",data[i]);
    	printf("\n");
    	printf("请插入一个数字\n");
    	int interNum;
    	scanf("%d",&interNum);
    	for(i=0;i<10;i++)
    	{
    		if(data[i]<=interNum)
    		{
    			for(int s=9;s>=i;s--)
    				data[s+1]=data[s];
    			break;
    		}
    	}
    	data[i]=interNum;
    	printf("插入数字后的排序如下:\n");
    	for(i=0;i<11;i++)
    		printf("%d ",data[i]);
    	printf("\n");
    

    在这里插入图片描述

    展开全文
  • C语言——数组中的插入排序法

    千次阅读 2020-07-19 11:15:03
    C语言——插入排序法C语言中有很多排序的方法,这次我先介绍一下插入排序法
  • c语言:数组插入处理

    2022-07-09 17:32:55
    数组插入处理,在顺序排列的数组中插入一个数,按顺序排列打印出来
  • C语言 数组部分知识、实现数组查找和排序
  • 数组插入法排序原理 三.数组插入法排序实战 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.简介 经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数...
  • 数组插入排序,带有原理图,一看就懂
  • 有很详细的注释,可以作为一维数组操作函数进行参考。操作可供选择。 int length(int *array); 返回数组元素个数 int copyarray(int *src, int *dest); 成功返回0, 失败返回-1 int printarray(int *array); 打印 ...
  • C语言数组的五种排序

    2020-01-10 11:04:08
    插入排序 归并排序 冒泡排序 冒泡排序的基本思想:不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较,就选出最大的数;经过第2轮比较,就选出次大的数,以此类推。对于具有N个元素的数组R[N],进行...
  • 选择法排序是指每次选择索要排序数组中的最小值(这里是由小到大排序,如果是由大到小排序则需要选择最大值)的数组元素,将这些数组元素的值与前面没有进行排序数组元素值进行互换 代码实现需要注意的是:声明...
  • C语言数组插入问题

    2022-01-03 18:37:33
    数组插入问题。生成一个 10 元素构成的一维数组,数组元素由用户随机输入。要求:先按照 升序排列并输出。再输入一个数,按照升序的规律将其插入并输出 本题思路在于:用冒泡对数组进行排序,然后找到合适的...
  • c语言数组插入新数据

    万次阅读 多人点赞 2019-01-03 15:05:06
    数组插入数据  在数组的应用中,我们有时会向数组中插入一个数据,而且不打破原来的排序规律,其实数组中的插入数据,就是数据的比较和移动;如果想要弄懂这些方法最好拿笔比划以下,或者debug一下,了解其中的...
  • 选择法排序是指:如果要把一个数组从小到大排列,那么就从该数组中依次选择最小的数字来排序。从第一个数字开始,将第一个数字与数组中剩下数字中最小的那一个交换位置,然后将第二个数字与剩下数字中最小的那个交换...
  • 目录 一.简介 二.数组快速法排序原理 三.数组快速法排序实战 四....零基础 C/C++ 学习路线推荐 : ...一....经过前面的学习,我们已经学会了数组遍历,在开发中,我们经常回碰到对数组...快速排序法号称是目前最优秀的算法
  • 目录 一.简介 二.数组选择法排序原理 三.数组选择法排序实战 四....零基础 C/C++ 学习路线推荐 : ...3.插入法排序 4.快速法排序 二.数组选择法排序原理 将要排序数组分成两部分,一部分是从大到小已经排好序的,一部分
  • 该函数使用插入排序算法,将数组a的前n个元素按照升序的方式排序。 插入排序算法描述如下: 初始序列:49 38 65 97 76 13 27 49 将元素(38) 插入合适位置: [38 49] 65 97 76 13 27 49 将元素(65) 插入合适位置...
  • 利用C语言实现数组的排序(直接插入排序法

    万次阅读 多人点赞 2019-04-16 11:59:01
    直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。 #pragma once #include <stdio.h> int insort(int s[], int n) { int i,j; for(i=2;i<=...
  • 已有一个按升序排序数组,含n个元素。输入整数x,将x插入数组中,使数组元素仍按升序排列。请使用数组实现。 输入 输入包含三行: 第一行是数组元素个数n(1 < n < 20)。 第二行是数组n个元素,相邻两项...
  • 数组元素进行排序的方法有很多种,比如冒泡排序、归并排序、选择排序、插入排序、快速排序等,其中最经典最需要掌握的是「冒泡排序」。 以从小到大排序为例,冒泡排序的整体思想是这样的: 从数组头部开始,不断...
  • ~~~C语言版本~~~冒泡排序选择排序直接插入排序二分插入排序希尔排序快速排序堆排序#define EXCHANGE(num1, num2) { num1 = num1 ^ num2;\num2 = num1 ^ num2;\num1 = num1 ^ num2;}排序算法是否稳定:相同元素...
  • 数组插入处理(C语言描述)

    千次阅读 2020-02-11 21:11:07
    题目描述:一个有序的9元素数组,今插入一个数使得按原来的数列排序 #include<stdio.h> int main() {int z=1,x,i,a[9]; for(i=0;i<9;i++) {scanf("%d",&a[i]);} scanf("%d",&x; for(i=0;i&...
  • 一、冒泡排序原理解析:(以从小到大排序为例)在一排数字中,将第一个与第二个比较大小,如果后面的数比前面的小,则交换他们的位置。然后比较第二、第三个……直到比较第n-1个和第n个,此时,每一次比较都将较大的一...
  • 排序算法之插入排序C语言

    千次阅读 2020-03-28 16:03:12
    插入排序算法核心思想:将无序数组中的元素,根据其值的大小,插入有序子数组中。类似于我们打扑克牌的时候,一边摸牌,一遍摆牌。遇到小的直接插到牌首,遇到大的直接插入牌尾,遇到中间的则在中间空出一个位置,将...
  • C语言数组的总结

    2021-05-22 15:31:22
    数组(Array)是一系列相同类型的数据的集合,可以是一维的、二维的、多维的;最常用的是一维数组和二维数组,多维数组较少用到。对数组的总结1) 数组的定义格式为:type arrayName[length]type 为数据类型,arrayName...
  • 单纯只用多个数组管理学生成绩信息,不使用结构体,该程序最主要的难点是依据学号或总成绩对学生信息进行排序,借助了临时数组来标记排好序的下标。  运行结果如下: 输入数据:   打印数据: 根据学号对信息...
  • c语言数组插入若干个数并令插入后的数列升序输出

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,638
精华内容 15,855
关键字:

c语言数组插入法排序