您的位置:

c语言排序算法多个数从小到大,c语言从小到大排序两个数

本文目录一览:

C语言~十个数字从小到大怎么排列~从大到小呢~

//要求任意输入10个数,然后按从小到大顺序输出

#include stdio.h

int main()

{

int a[10];

int i,j;

int temp;

printf("请输入10个整数:");

for(i=0;i10;i++)

{

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

}

for(i=0;i9;i++)

{

for(j=0;j9-i;j++)

{

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

{

temp=a[j];

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

a[j+1]=temp;

}

}

}

printf("排列后顺序为:");

for(i=0;i10;i++)

{

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

}

printf("\n");

return 0;

}

C语言中怎么把三个整数从小到大排列

原理就是运用冒泡算法,把最大的数浮在最上面,而小的数就下沉,最后就输出。

方法如下:

分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,

然后再用x与z进行比较,如果xz则将x与z的值进行交换,这样能使x最小。

1.从控制台读入三个数;

2.实现三个数从小到大排序:

(1)将第一个数作为最小数,依次和第二,三个数进行比较。两次比较重如果有任意一个比第一个小,则将两个数交换

(2)在(1)步后,得到第一个数为最小数。再将第二个数与第三个数比较大小后即可实现三个数从小到大排序。

拓展资料

两种常用排序方法:

1.选择排序法:从一列数中,选择第一个作为最小数,依次和后面的数进行比较。如有比第一个数小的数,则交换两个数。最后排到该列数都倒数第二个时,这列数就从小到大排好了顺序。

2.冒泡排序法:思路与选择排序法一致。不同的是,冒泡排序将第一个作为最大数,然后再和该数后的数进行比较。

4个数比较大小,结果从小到大排列,用C语言怎么编?

1、首先双击打开桌面上的C-Free5编程软件。

2、打开编程软件以后,创建一个新页面来编写程序。

3、编写代码.

4、编写完代码以后,按F5进行编译。或者点击上方的小三角。

5、编译时,如果有错误会进行报错,大家需要进行检查修改。如果没有错误,会出现【0个错误,0个警告】。

6、编译完成后进行运行,按照提示依次输入三个整数。依次输入1,2,3。

7、输入完成后再点击回车键,三个数就会被从小到大依次排序。

求C语言将数组元素大小排序!!

C语言将数组元素大小排序方法:

以下使用的是冒泡排序法实线数组从小到大排序。

思想:每次相邻两个数比较,若升序,则将大的数放到后面,一次循环过后,就会将最大的数放在最后。

10、2、3、4、5、6、9、8、7、1是输入的待排序的数列,经过第一次排序,将最大的,10放在最后,第二次排序,将剩下的2、3、4、5、6、9、8、7、1进行冒泡,将当前最大的9放在倒数第二的位置,以此类推。

以下是具体代码:

#include stdio.h

int main(){

int nums[10] = {10, 2, 3, 4, 5, 6, 9, 8, 7, 1};

int i, j, temp, isSorted;

//优化算法:最多进行 n-1 轮比较

for(i=0; i10-1; i++){

isSorted = 1;  //假设剩下的元素已经排序好了

for(j=0; j10-1-i; j++){

if(nums[j] nums[j+1]){

temp = nums[j];

nums[j] = nums[j+1];

nums[j+1] = temp;

isSorted = 0;  //一旦需要交换数组元素,就说明剩下的元素没有排序好

}

}

if(isSorted) break; //如果没有发生交换,说明剩下的元素已经排序好了

}

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

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

}

printf("\n");

return 0;

}

扩展资料:

其他将数组从小到大排序的算法

以下使用的是选择排序法实现数组从小到大排序。

思想:从第一个数开始,每次和后面剩余的数进行比较,若升序,则如果后边的数比当前数字小,进行交换,和后面的所有的数比较、交换后,就会将当前的最小值放在当前的位置

输入的序列为10、2、3、4、5、6、9、8、7、1进行一次排序后将最小的数放在了第一位(a[0]与它后面的所有数进行比较,若a[0]比后面的数大,进行交换),以此类推。

以下是具体代码:

#include stdio.h

int main(void){

int a[1001];

int n,i,j,t;

scanf("%d",n);//n为要排序的数的个数

//输入需要排序的数

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

scanf("%d",a+i);

//接下来进行排序

for(i=0;in-1;++i)//因为每次需要和a[i]后面的数进行比较,所以到a[n-2](倒数第2个元素)就行

{

for(j=i+1;jn;++j)//j从i后一个开始,a[i]与a[j]进行比较

{

if(a[i]a[j])//a[i]为当前值,若是比后面的a[j]大,进行交换

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}//每排序一次,就会将a[i](包括a[i])之后的最小值放在a[i]的位置

for(j=0;jn;++j)

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

printf("\n\n");

}

return 0;

}