精华内容
下载资源
问答
  • C语言起泡法十个数由大到小排序。 代码: #include <stdio.h> int main() { int a[10],i,j,t; printf("Input ten numbers:\n");//输入10个数 for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<...

    C语言用起泡法对十个数由大到小排序。

    代码:
    #include <stdio.h>

    int main()
    {
    int a[10],i,j,t;
    printf("Input ten numbers:\n");//输入10个数
    for(i=0;i<10;i++)
    	scanf("%d",&a[i]);
    
    for(i=0;i<9;i++)//用一个数和未进行比较的数比较,如果小于那个数,就交换位置
    	for(j=9;j>i;j--)
    		if(a[i]<a[j]){
    			t=a[i];
    			a[i]=a[j];
    			a[j]=t;
    		}
    
    for(i=0;i<10;i++)
    	printf("%5d",a[i]);//输出结果
    printf("\n");
    		
    	return 0;
    
    }
    

    运行结果:
    在这里插入图片描述

    展开全文
  • 起泡排序法的基本思路:每次将相邻的两个数进行比较,将小的调到前头。若有6个数:9,8,5,4,2,0第一次先将最前面的两个数8和9对调,第二次将第二个和第三个数(9和5对调)……如此一共进行五次,得到8,5,4,2,0...

    代码学习过程中总结一下起泡排序法。

    起泡排序法的基本思路:每次将相邻的两个数进行比较,将小的调到前头。

    若有6个数:9,8,5,4,2,0

    第一次先将最前面的两个数8和9对调,第二次将第二个和第三个数(9和5对调)……如此一共进行五次,得到8,5,4,2,0,9的顺序。

    可以看到,大数已沉底,而小数上升。最小的数0已向上浮起一个位置,经过一次比较已经得到最大的数9。

    28dbb7793fbd60f841e82bb8c5ea91e3.png

    然后进行第二趟比较,对余下的五个数进行新一次的比较。(8,5,4,2,0)进行新一轮的比较,以便使第二大的数沉底。按以上方法进行第二次比较。得到第二大的数8。

    按此规律,可以推知,对六个数要比较五次,才能使六个数按大小顺序排列。

    第一趟要比较5次,第二趟比较4次……第五趟比较1次。

    规律:如果有n个数,则要进行n-1次比较。在第一趟比较中药进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。

    我将起泡排序写成函数

    #include

    /*==========================================================

    *函数名称:main()

    *功    能:主函数

    *入口参数:

    *出口参数:

    *说    明:使用起泡法将给定的数组排序

    *==========================================================*/

    void main()

    {

    void qipao_paixu(int num[]);

    int a[10]={655,23,56,2345,3897,36,478,31,90,208};

    int i;

    printf("原始序列:");

    for(i=0;i<10;i++)

    printf("%5d",a[i]);

    printf("\n");

    printf("起泡法排序\n");

    qipao_paixu(a);

    printf("排序后的序列:");

    for(i=0;i<10;i++)

    printf("%5d",a[i]);

    }

    /*==========================================================

    *函数名称:qipao_paixu()

    *功    能:起泡排序

    *入口参数:

    *出口参数:

    *说    明:对数组中的十个元素进行起泡排序

    *==========================================================*/

    void qipao_paixu(int num[])

    {

    int i,j,temp;

    for(j=0;j<9;j++)//控制j趟比较

    for(i=0;i<9-j;i++)//第j趟中,控制n-j次两两比较

    {

    if(num[i]>num[i+1])//判断序列中两两相邻数字大小

    {

    temp=num[i];//小数向前放,大数沉底

    num[i]=num[i+1];

    num[i+1]=temp;

    }

    }

    }

    经codeblock编译运行

    c923f83d88c2c25015d02cbae730ccb5.png

    新手小白,还望多指正,以后常总结交流。

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • C语言中用“起泡法排序”解决排序问题

    千次阅读 多人点赞 2019-01-06 19:21:45
    问题: 有10个地区的面积,要求对他们按由小到大的顺序排列。...“起泡法”的基本思路是:每次将相邻两个数比较,将小的调到前头。若有6个数:9,8,5,4,2,0。第1次先将最前面两个数8和9对调。第2...

    问题: 有10个地区的面积,要求对他们按由小到大的顺序排列。
    解析: 这种问题称为数的排序。排序的规律有两种:一种是“升序”,从小到大;另一种是“降序”,从大到小。可以把这个题目抽象为一般形式“对n个数按升序排序”。
      排序的方法有很多种,本例用“起泡法”排序。“起泡法”的基本思路是:每次将相邻两个数比较,将小的调到前头。若有6个数:9,8,5,4,2,0。第1次先将最前面两个数8和9对调。第2次将第2和第3个数(9和5)对调…如此共进行5次,得到8-5-4-2-0-9的顺序,可以看到:最大的数9已“沉底”,成为最下面一个数,而小的数“上升”。最小的一个数0已向上“浮起”一个位置。经过第一趟(共5次比较与交换)后,已得到最大的数9。
      然后进行第2趟比较,对余下的前面5个数(8,5,4,2,0)进行新一轮的比较,以便使次大的数“沉底”。按以上方法进行第2趟比较。经过这一趟4次比较与交换,得到次大的数8。
      按此规律进行下去,对6个数要比较5趟,才能使6个数按大小顺序排列。在第1趟中要进行两个数之间的比较共5次,在第2趟过程中比较4次…第5趟只须比较1次。
      如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。
      代码实现:

    #include <stdio.h>
    int main()
    {
    	int a[10];
    	int i,j,t;
    	printf("input 10 numbers:\n");
    	for(i=0;i<10;i++){
    		scanf("%d",&a[i]);
    	}
    	printf("\n");
    	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;
    			}
    	 	
    	 }
    }
    	printf("the sorted numbers :\n");
    	for(i=0;i<10;i++){
    		printf("%d ",a[i]);
    	}
    	printf("\n");
    	
    	return 0;
    }
    

    输出:
    在这里插入图片描述

    展开全文
  • 起泡就是冒泡排序依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两...

    起泡就是冒泡排序

    依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。   由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

    用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,9,对于每一个i, j的值依次为1,2,...10-i。

    void bubble_sort(int *x, int n)

    {

    int j, k, h, t;

    for (h=n-1; h>0; h=k) /*循环到没有比较范围*/

    {

    for (j=0, k=0; j

    {

    if (*(x+j) > *(x+j+1)) /*大的放在后面,小的放到前面*/

    {

    t = *(x+j);

    *(x+j) = *(x+j+1);

    *(x+j+1) = t; /*完成交换*/

    k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/

    }

    }

    }

    }

    展开全文
  • 起泡法10个数进行排序,可以自己修改数的个数。欢迎下载。。
  • 用于大学C语言实验报告,包含选择起泡法
  • 1冒泡10个数排序#include voidmain() {inta[10]; inti,j,t; printf("pleaseinput10numbers:\n"); for(i=0;i<10;i++) .Description 对于任意给定的5个整数,请按从小到大的顺序排序。整数...
  • 起泡法10个数排序

    千次阅读 2016-11-01 22:45:06
    冒泡排序算法示例,排序算法
  • C语言排序之冒泡起泡法

    千次阅读 2018-11-08 22:21:43
    C语言排序之冒泡起泡法)@C语言排序之冒泡起泡法) 冒泡的本质还是两两比较,第一次把最大或最小的选出来,第二次把老二选出来,这样的话就会少比一次,就这样循环下去就行啦,无非就是循环的嵌套,下面是我...
  • 起泡法排序

    2014-05-20 20:40:08
    //输入3个整数,要求按由小到大的顺序输出。 // 请思考:若对任意n个数进行排序,应该如何操作?
  • 起泡排序,别名“冒泡排序”,该算法的核心思想是将无序表中的所有记录,通过两两比较关键字,得出升序序列或者降序序列。 例如,对无序表{49,38,65,97,76,13,27,49}进行升序排序的具体实现过程如图1 所示: ...
  • C语言冒泡排序起泡法

    千次阅读 2020-04-17 17:46:05
    c语言中冒泡法排序的算法:从数组头部开始,不断比较相邻的两元素的大小,让较大的元素逐渐往后移动(交换两元素的值),直到数组的末尾。 #include <stdio.h> void main() { int a[8];//定义数组 int ...
  • C语言程序设计第10讲7.4.3 对被调用函数的说明 自定义函数: float factorial ( int n ) { float x, y ; for( x=y=1.0; x<=n; x++) y *= x ; return y ; } 例 调用自定义函数求 n! float factorial ( int ); /* ...
  • 起泡法10个数排序(由小到大)

    千次阅读 2020-11-04 15:03:50
    #include <stdio.h>...i++) //输入10个数 scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) //进行9次循环,实现9次比较 for(i=0;i<9-j;i++) //在每一次中进行9-j次比较 if(a[i]>a
  • 2009-12-06C语言 用“选择排序法”对一维数组中的整数进行排序,使其元素的值按从小到大的顺序排列!void selectSort(int* data, int max) {int m, temp;for (int i = 0; i < max - 1; i++) {m = i;for (int j = ...
  • #define MAXSIZE 10 //打印函数 void Show(int arr[], int n) { int i; printf("\n\n排序的结果为:\n"); for(i = 0; i < n; i ++ ) printf("%d ",arr[i]); printf("\n"); } //交换函数 void Swap(int *...
  • 用冒泡排序法排序输入的n数字 随意输入n数字,用冒泡排序法进行排序 #include<stdio.h> void BubbleSort(int number[],int n) { int i,j,temp; for(i=0;i<n-1;i++) { for(j=1;j<n-i;j++) ...
  • 起泡法10个数排序(由小到大)

    万次阅读 2008-02-08 17:05:00
    起泡法10个数排序(由小到大)若有n个数。第一次将第1和第2个数比较,若第1个数大于第2个数,刚两数对调,否则不操作。第二次将第2和第3个数比较,如上操作,刚经过n-1次这样的操作,最大的数排到了最后(即所谓的...
  • c语言冒泡排序的方法:先选定第一数字为最大再对数字两两进行比较,得到两者之间的最大值,依次比较。具体代码实现如下:#include #include using namespace std;void srandData(int *, int );//产生随机数的函数...
  • 不知道 为什么 ?
  • c语言起泡排序

    2014-11-11 10:57:52
    1 //排序主函  2 #include  3 int main()  4 {  5 int ss[14]={5,10,13,3,1,11,4,12,7,2,0,8,9,6};  6 int i;  7 int length=14;  8 int step=5;  9 printf("初始值:");  10 for(i=0;i  11 ...
  • C语言 冒泡法排序,选择法排序和插入排序

    千次阅读 多人点赞 2014-12-04 22:56:06
    实例1 冒泡法排序 数组中有N整数,用冒泡将它们从小到大(或从大到小)排序。 ...冒泡法排序C语言教材中已经介绍过的排序方法,与其他排序方法比较起来,冒泡效率是最低的,但因其算法
  • #include using namespace std; int main() { int a[10]; int i,j,k; cout请输入十个数字:"; for(i=0;i<10;i++) cin>>a[i]; cout; for(j=0;j;j++) for(i=0;i;i++) if
  • 排序起泡法排序

    2020-02-02 16:54:18
    #include<stdio.h>... int a[10]; int i, j, t; printf("input 10 number:\n"); for (i = 0; i < 10; i++) scanf_s("%d", &a[i]); printf("\n"); for (j = 0; j < 9; j++); for...
  • 本文实例为大家分享了C++实现双向冒泡排序算法的具体代码,供大家参考,具体内容如下一、概念(来源于百度百科)传统冒泡算法原理冒泡排序算法的运作如下:(从后往前)1.比较相邻的元素。如果第一比第二大,就交换...
  • C语言版双向起泡排序

    2019-10-08 16:23:42
    奇数趟时,从前往后比较相邻的关键字,遇到逆序就交换,直到把最大的移动到最后; 偶数趟时,从后往前比较相邻的关键字,遇到逆序...//双向起泡,交替进行正反两方向的冒泡排序 int low=0;int high=len;int temp...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,038
精华内容 415
关键字:

起泡法排序10个数c语言

c语言 订阅