c语言编程:对10个数冒泡排序(升序)。 C语言:采用冒泡排序方法,对10个数按由小到大的的顺序排序

作者&投稿:敖咏 (若有异议请与网页底部的电邮联系)

#include <stdio.h>

int main(){  

int number[10] = {95, 45, 15, 78, 84, 51, 24, 12,34,23};

for (int j = 0; j < 9; j++)

for (int i = 0; i < 9 - j; i++)  {

if(a[i] > a[i + 1])    {

                  int temp = a[i];

a[i] = a[i + 1];

a[i + 1] = temp;  }  

}

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

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

}

扩展资料:

常见排序算法

快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法,而基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。

插入排序

已知一组升序排列数据a[1]、a[2]、……a[n],一组无序数据b[1]、b[2]、……b[m],需将二者合并成一个升序数列。

首先比较b[1]与a[1]的值,若b[1]大于a[1],则跳过,比较b[1]与a[2]的值,若b[1]仍然大于a[2],则继续跳过,直到b[1]小于a数组中某一数据a[x],则将a[x]~a[n]分别向后移动一位,将b[1]插入到原来a[x]的位置这就完成了b[1]的插入。

b[2]~b[m]用相同方法插入。

快速排序

快速排序是大家已知的常用排序算法中最快的排序方法。已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先任取数据a[x]作为基准。

比较a[x]与其它数据并排序,使a[x]排在数据的第k位,并且使a[1]~a[k-1]中的每一个数据<a[x],a[k+1]~a[n]中的每一个数据>a[x],然后采用分治的策略分别对a[1]~a[k-1]和a[k+1]~a[n]两组数据进行快速排序。

希尔排序

已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。

首先取一增量d(d<n),将a[1]、a[1+d]、a[1+2d]……列为第一组,a[2]、a[2+d]、a[2+2d]……列为第二组……,a[d]、a[2d]、a[3d]……列为最后一组以次类推,在各组内用插入排序,然后取d'<d,重复上述操作,直到d=1。

参考资料:排序-百度百科



代码示例如下,以数组a为例:
#include <stdio.h>
#define SIZE 10
int main()
{
int a[SIZE]={12 ,43,9,13,67,98,101,89,3,35};
int i,j,t;
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
拓展资料
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

冒泡排序流程:它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

参考代码:

#include<stdio.h>
int main()
{
   int a[10],i,j,t;
   for(i=0;i<10;i++);
   scanf("%d",&a[i]);
   for(j=0;j<9;j++)
     for(i=0;i<=8-j;i++)
        if(a[i]>a[i+1])
        {
          t=a[i];
          a[i]=a[i+1];
          a[i+1]=t;
        }
     for(i=0;i<10;i++)
      printf("%d ",a[i]);
   return 0;
}
/*
运行结果:
2 3 5 4 1 9 8 7 6 0
0 1 2 3 4 5 6 7 8 9
*/


//以下以四个数字的给举例,便于理解;
#include <stdio.h>
main()
{
int i; //定义i变量,i代表外层for循环--比较轮数;
int k; //定义k变量,k代表内层for循环--比较次数;
int t; //定义t变量,t代表临时变量,临时存放比较的结果中较大的数字,通过赋值的方式切换数字的排序;
int a[] = {30,3,6,10}; //定义数组,数组是本次要排序的数字组合;注意此处数组中一共4个数字所以 理论上是 a[4]={30,3,6,10};
//初试化i=1;并判断i是否小于等于3; 如果符合条件 那么进入for循环;(4个数字,两两对比需要进行3轮对比,i就代表了轮数;i需要经过 1,2,3 三轮的赋值;i=4的时候会跳出for循环)
for(i=1; i<=3; i++){ 
//初试化k=0;并判断k是否小于等于3 -i; 如果符合条件 那么进入for循环;第一轮的时候数组一共4个数字所以需要对比3次;第二轮还有3个数字需要对比2次;第三轮仅剩2个数字需要对比1次;(特:当k=0的时候是第一次对比;k从0开始赋值是为了在for循环内当数组的键值使用;)
for(k=0; k<=3-i; k++){ 
//判断a[K] 的数字  是否 大于 a[K + 1 ] 的数字;假设当前是第一轮第一次对比那么a[K=0] = 30,a[K=0 + 1] = 3;
if(a[k] > a[k+1]){ 
t = a[k];  //对上一步判断结果进行进一步处理,因为a[K] > a[K + 1 ] , 所以把a[K] 赋值给临时变量以便于 后续把这个大的数字向后平移;
a[k] = a[k+1]; //a[K + 1 ]是比较结果中比较小的数字,所以需要向前靠,向前靠就是要赋值给 a[K];空出 a[K + 1 ]便于下一步接收 较大的数字  a[K];
a[k+1] = t;  //a[K + 1 ] 接收 较大的数字  a[K];
}
}
}
for(i=0; i<4; i++){//初试化i=0;并判断i是否小于4; 如果符合条件 那么进入for循环,i在for内做键值使用:
printf("第 %d个数字为:%d
",i+1,a[i]);
}
}
/* 
运行结果如下:
第 1个数字为:3
第 2个数字为:6
第 3个数字为:10
第 4个数字为:30
*/


//冒泡排序,假设有n个数,需要n-1趟排序
//其中,第i趟需要 n-i次排序
#include<stdio.h>
int main(void)
{
int a[5]={5,7,9,8,1};
int i,j,w;
printf("输入5个数:%d\n",a[5]);

/*for(i=0;i<5;i++)
{
scanf("%d",&a[i]);//扫描输入5个数
}*/
//使用2层循环
for(i=1;i<=5-1;i++) //趟
{
for(j=0;j<5-i;j++) //第i趟
{

if(a[j]>a[j+1])
{//从大到小排序
w=a[j];
a[j]=a[j+1];
a[j+1]=w;
}
}
}
for(i=0;i<5;i++)
printf("%4d",a[i]);
return 0;
}

8、编程实现:从键盘上输入10个整数,对10个整数进行冒泡排序(要求排成升序c语言编写~

#include
void main()
{
int i,j;
float a[10],t;
printf("请输入十个数字");
for(i=0;i<10;i++)
{
scanf("%f",&a[i]);
}
for(j=0;j<10;j++)
{
for(i=0;i<10-1;i++)
{
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%f",a[i]);
printf(" ");
}
}====

代码如下(对10个整数进行升序排序):
#include
int main()
{
int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};
//排序
for(i=1;i<10;i++)//外循环控制排序趟数,n个数排n-1趟
{
for(j=0;j<10-1;j++)//内循环每趟比较的次数,第j趟比较n-i次
{
if(a[j]>a[j+1])//相邻元素比较,逆序则交换
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序后的结果是:
");
for(i=0;i<10;i++)
{
printf("%d",a);
}
printf("
");
return 0;
}
冒泡法:
算法分析:如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次相邻元素的两两比较,在第j趟比较中要进行n-j次两两比较。比较的顺序从前往后,经过一趟比较后,将最值沉底(换到最后一个元素位置),最大值沉底为升序,最小值沉底为降序。

扩展资料:include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在当前项目中的函数原型、类型定义和宏
你可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。

用冒泡法对10个数从大到小排序
答:用冒泡法对10个数从大到小排序如下:def bubble_sort(nums):for i in range(len(nums)):for j in range(len(nums)-1):if nums[j]<nums[j+1]:nums[j],nums[j+1]=nums[j+1],nums[j]return numsnums=[34,2,10,-9,89,76,17,-23,55,48]#可以替换为任何10个数的列sorted_nums...

用C语言,随机输入10个整数,用冒泡排序法对这些整数进行从小到大排序...
答:int a[10];int b[10]={9,10,11,12,1,2,3,4,0,1};int c[10]={1,2,3,4,13,14,15,16,2,3};int i;printf("请输入待排序的10个数:");for(i=0;i<10;i++){ scanf("%d",&a[i]);} fun(a);printf("\n排序后的数列如下:\n");for(i=0;i<10;i++){ printf("...

c语言编程:对10个数冒泡排序(升序)。
答:include <stdio.h> int main(){ int number[10] = {95, 45, 15, 78, 84, 51, 24, 12,34,23};for (int j = 0; j < 9; j++)for (int i = 0; i < 9 - j; i++) { if(a[i] > a[i + 1]) { int temp = a[i];a[i] = a[i + 1];a[i + 1] ...

用冒泡法对10个整数由小到大进行排序
答:for(i=1;i<10;i++)printf("%d",a[i]);}

...要求从键盘输入10个整数,然后采用冒泡排序法,按降序排序。 (用冒 ...
答:采用冒泡法降序排列10个输入数据的程序如下:先定义一个长度为10的数组a[],10个数据由键盘输入,从第一个数开始,两两一组进行判断,因为要求是降序排列,因此将两个数中小的向后移动,每个数要比较的次数为9-数的下标。比较完成后将数组依次输出。输入10个数据,程序运行结果:...

...对10个整数进行冒泡排序(要求排成升序c语言编写
答:void main(){ int i,j;float a[10],t;printf("请输入十个数字");for(i=0;i<10;i++){ scanf("%f",&a[i]);} for(j=0;j<10;j++){ for(i=0;i<10-1;i++){ if(a[i]>a[i+1]){ t=a[i];a[i]=a[i+1];a[i+1]=t;} } } for(i=0;i<10;i++){ printf(...

java语言中编程对十个整数进行从小到大排序
答://键盘输入,冒泡排序 public class Example9_19 {public static void main(String args[]){Scanner in=new Scanner(System.in);int n=10;int data[]=new int[n];for(int i=0;i<data.length;i++){System.out.println("请输入第"+(i+1)+"个数");data[i]=in.nextInt();} System....

C语言问题:从键盘输入十个数,用冒泡对输入的数据从小到大的顺序进行排序...
答:include "stdio.h"int main(){int a[10],b;int i,j;for (i = 0; i < 10; i++){printf("输入第%d个数字:",i+1);scanf("%d", &a[i]);getchar();}//冒泡排序for (i = 0; i < 10 - 1; i++){for (j = 0; j < 10-i - 1; j++){if (a[j]>a[j + 1])...

c语言中用冒泡排序法排列下列十个数字从小到大1,3,6,8,2,7,9,0,4...
答:include <stdio.h>int main(){ int a[10]={1,3,6,8,2,7,9,0,4,5};int i,j;for(i=0;i<10;i++){ for(j=0;j<9-i;j++){ if(a[j]>a[j+1]){ int t=a[j];a[j]=a[j+1];a[j+1]=t;} } } for(i=0;i<10;i++){ printf("%d ",a[i]);} return 0;...

用冒泡排序将10个整数按照由大到小的顺序(降序)排序
答:include<stdio.h>void main(){ int a[10]; int i,j,t; printf("请输入10个数:\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]...