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

发布时间:2023-01-08

本文目录一览:

  1. C语言十个数字从小到大怎么排列从大到小呢~
  2. C语言中怎么把三个整数从小到大排列
  3. 4个数比较大小,结果从小到大排列,用C语言怎么编?
  4. 求C语言将数组元素大小排序!!

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

//要求任意输入10个数,然后按从小到大顺序输出
#include <stdio.h>
int main()
{
    int a[10];
    int i,j;
    int temp;
    printf("请输入10个整数:");
    for(i=0; i < 10; i++)
    {
        scanf("%d", &a[i]);
    }
    for(i=0; i < 9; i++)
    {
        for(j=0; j < 9 - i; j++)
        {
            if(a[j] > a[j+1])
            {
                temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
    printf("排列后顺序为:");
    for(i=0; i < 10; i++)
    {
        printf("%d ", a[i]);
    }
    printf("\n");
    return 0;
}

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

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

  1. 分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x > y则将x与y的值进行交换,
  2. 然后再用x与z进行比较,如果x > z则将x与z的值进行交换,这样能使x最小。
  3. 从控制台读入三个数;
  4. 实现三个数从小到大排序:
    • 将第一个数作为最小数,依次和第二,三个数进行比较。两次比较重如果有任意一个比第一个小,则将两个数交换;
    • 在(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; i < 10-1; i++){
        isSorted = 1; //假设剩下的元素已经排序好了
        for(j=0; j < 10-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; i < 10; i++){
        printf("%d ", nums[i]);
    }
    printf("\n");
    return 0;
}

选择排序代码示例:

#include <stdio.h>
int main(void){
    int a[1001];
    int n,i,j,t;
    scanf("%d", &n); //n为要排序的数的个数
    //输入需要排序的数
    for(i=0; i < n; ++i)
        scanf("%d", a+i);
    //接下来进行排序
    for(i=0; i < n-1; ++i) //因为每次需要和a[i]后面的数进行比较,所以到a[n-2](倒数第2个元素)就行
    {
        for(j=i+1; j < n; ++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; j < n; ++j)
            printf("%-5d", a[j]);
        printf("\n\n");
    }
    return 0;
}