C语言:冒泡排序法将数组中10个元素从小到大排序,并找出最小值?

作者&投稿:说东 (若有异议请与网页底部的电邮联系)
C语言:编写函数用冒泡排序法对数组中的数据进行从小到大的排序.~

int i,j,temp;for(i=0;ia[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}之间写这个

代码如下(对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的内容。

#include<stdio.h>

int main()

{

int a[11],min=0,t;

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

scanf("%d",&a[i]);

min=a[0];

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

if(a[i]<min)//求最小值 

min=a[i];

for(int i=0;i<10;i++)//冒泡排序 

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

if(a[j]>a[j+1])

{

t=a[j];

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

a[j+1]=t;

}

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

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

printf("
%d",min); 

return 0;

}



#include <stdio.h>
#include <stdlib.h>

#define NUM 10
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//冒泡排序算法
//基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。
void bubbleSort(int *arr, int n) {
int i,j;
for (i = 0; i<n - 1; i++)
for (j = 0; j < n - i - 1; j++) {
//如果前面的数比后面大,进行交换
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//最差时间复杂度为O(n^2),平均时间复杂度为O(n^2)。稳定性:稳定。辅助空间O(1)。
//升级版冒泡排序法:通过从低到高选出最大的数放到后面,再从高到低选出最小的数放到前面,
//如此反复,直到左边界和右边界重合。当数组中有已排序好的数时,这种排序比传统冒泡排序性能稍好。
//升级版冒泡排序算法
void bubbleSort_1(int *arr, int n) {
//设置数组左右边界
int left = 0, right = n - 1;
//当左右边界未重合时,进行排序
while (left<=right) {
int i,j;
//从左到右遍历选出最大的数放到数组右边
for (i =left; i < right; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
right--;
//从右到左遍历选出最小的数放到数组左边
for (j = right; j> left; j--) {
if (arr[j + 1] < arr[j]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
left++;
}
}
int main(int argc, char *argv[]) {
int arr[NUM],i,j,temp;
printf("请输入10个数:\n");
for(i=0; i<NUM; i++) {
printf("请输入第(%d)个数:",i+1);
scanf("%d",&arr[i]);
}
printf("\n输入如下排列:\n");
for(i=0; i<NUM; i++) {
printf("%4d",arr[i]);
}/*
for(i=0; i<NUM; i++) {
for(j=i+1; j<NUM; j++) {
if(arr[i]>arr[j]) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}*/
bubbleSort_1(arr,NUM);
/*printf("\n从小到大如下排列:\n");
for(i=0; i<NUM; i++) {
printf("%4d",arr[i]);
}*/
printf("\n从大到小如下排列:\n");
for(i=NUM-1; i>=0; i--) {
printf("%4d",arr[i]);
}
return 0;
}

C语言冒泡排序法是什么?
答:C语言常见的排序算法:1、冒泡排序 基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。2、快速排序 基本思想:选取一个基准元素,通常为数组最后一个元素(或者第一个元素)。从前向后遍历数组,当遇到小于基准元素的元素时,把它和...

C语言:编写一个程序用冒泡排序实现升序排列
答:a[1]=7 a[2]=8 a[3]=9 a[4]=6 a[5]=5 a[6]=4 a[7]=1 a[8]=2 a[9]=3 a[10]=99 由小到大的顺序为:1,2,3,4,5,6,7,8,9,99。冒泡排序算法的原理如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一...

c语言一维数组冒泡排序
答:(2)比较第2和第3个数,将小数 放在前面,大数放在后面。...(3)如此继续,知道比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成(4)在上面一趟比较完成后,最后一个数一定是数组中最大的一个数,所以在比较第二趟的时候,最后一个数是不参加比较的。(5)在第二趟比...

c语言数组的排序
答:可以采用冒泡排序的方法。以下给题主一个对既定数组进行升序、降序排序的代码 include <stdio.h>#include #define elemType int /*元素类型*/#define LEN 100 /*数组长度上限*/#define ASC 0 /*升序*/#define DESC 1 /*降序*//*冒泡排序*//*参数说明:*//*elemType arr[]:排序目标数组*/...

c语言 使用冒泡排序将一维数组A中的N个元素升序排列
答:2013-06-03 急:C语言中用冒泡发对10个一维数组按从小到大顺序排序,并输... 5 2013-01-13 C语言将冒泡排序(或选择排序)改造成函数,实现对一个一维数组... 4 2013-05-19 用c语言 输入一个6个元素的数组,请分别用冒泡法和选择法对数... 17 2016-05-08 C语言编程题 题目描述 使用冒泡排序法对...

使用冒泡法,对数组ia(1)=8,ia(2)=6,ia(3)=9,ia(4)=3,ia(5)=2,_百度...
答:冒泡排序法:根据轻气泡不能在重气泡之下的原则。注意:C语言数组下标从0开始。C语言程序:运行结果:数据数组可任意修改:{8,6,9,3,7} 运行结果:

求C语言冒泡排序注解
答:3.如果从1开始就会把数组里第一个数跳过去,也就是说默认第一个数是在正确位置上的 4.改进的话你可可以在内部循环之前设个flag,如下 void bubble(int a[],int n){ int i,j;for(i=1;i<n;i++){ int flag = 0;for(j=0;j<n-1;j++){ if(a[j]>a[j+1]){ swap2(&a[j],&...

在C语言中,冒泡排序是怎样做的?如题 谢谢了
答:main() { int i,j,temp; int a[10]; for(i=0;i<10;i++) scanf ("%d,",&a[i]); for(j=0;j<=9;j++) { for (i=0;i<10-j;i++) if (a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} } for(i=1;i<11;i++) ...

C语言冒泡排序法
答:temp=grade[j+1]; //将比较大的数赋值给temp grade[j+1]=grade[j]; //将比较小的数赋值给数组中后面的变量 grade[j]=temp; //将比较大的数赋值给数组中前面的变量 } //从此便完成大小变量的交换,使得大值往前放 } //结束内层循环 } //结外内层循环,完成排序 printf("最后排序为:\n...

已知一个int类型的数组,用冒泡排序法将数组中的元素按从大到小的顺序...
答:用sort函数,例如 int a[10]; sort(a,a+10) 头文件 “algorithm”上面为快排 冒泡:void main(){ int i,j,temp;int a[10];for(i=0;i<10;i++)scanf ("%d,",&a[i]);for(j=0;j<=9;j++){ for (i=0;i<10-j;i++)if (a[i]>a[i+1]){ temp=a[i];a[i]=a...