精华内容
下载资源
问答
  • 将三个数字从小到大排列(或者从大到小排列)c及python很基础的算法题输入三个整数x,y,z,请把这三个数由小到大输出。c:一般情况下,我们是用三个if来进行一个数字的变化,很简单的依次排序。代码如下:#includeint...

    将三个数字从小到大排列(或者从大到小排列)c及python

    很基础的算法题

    输入三个整数x,y,z,请把这三个数由小到大输出。

    c:

    一般情况下,我们是用三个if来进行一个数字的变化,很简单的依次排序。

    代码如下:

    #includeint main( )

    {

    int a , b , c ,t;

    scanf(“%d , %d , %d” , &a , &b ,&c) ;

    printf(“\n\n a=%d , b=%d , c=%d \n” ,a , b , c) ;

    if(a>b)

    {t=a ; a=b ; b=t ;}

    if(a>c)

    {t=a ; a=c ; c=t ;}

    if(b>c)

    {t=b ; b=c ; c=t ;}

    printf(“\n\n a=%d , b=%d , c=%d \n” ,a , b , c) ;

    }

    2.我做一道题的时候,喜欢将这道算法的解法都尽量写出来,所以还有第二种思路。

    第二种思路其实不难,我们在这里放三个数字,a b c。要是他不满足a#include#includeint main()

    {

    int x,y,z,a;

    scanf("%d %d %d",&x,&y,&z);

    while(1)

    {

    if(x>y)

    {a=x;x=y;y=a;}

    if(y>z)

    {a=y;y=z;z=a;}

    if(x<=y&&y<=z)

    break;

    }

    printf("%d %d %d",x,y,z);

    }

    python:

    python相对c有很多其他的用法,用法很多,我就不一一详解,我们可以用尽量短的代码去完成这个算法,那么我们有何必去使用更长的呢?

    这里我使用了字典以及列表的转化,排序函数,以及一次迭代

    代码如下:

    a['A'],a['B'],a['C']=map(int,input().split())

    b_list=sorted(list(a.values()))

    for i in range(3):

    print(b_list[i]," ",end="")

    大家注意在列表中sorted函数是有返回值的,他的返回值是一个排序好的列表,而sort函数的返回值却是none,所以这里的list(a.values())也可以在后面加上.sort()

    这里的values函数是提出字典中的值,并返回一个名为dic_values列表,大家有兴趣可以去查一下,这里就不详解了

    展开全文
  • #include #include &lt;time.h&gt; using namespace std; void srandData(int *, int );//产生随机数的函数 void selectSort(int *, int );...//两个数字实现交换的函数 void display(int *, int );...
    #include <iostream>
    #include <time.h>
    using namespace std;
    
    void srandData(int *, int );//产生随机数的函数
    void selectSort(int *, int );//选择排序具体实现函数
    void swap(int *, int *);//两个数字实现交换的函数
    void display(int *, int );//在屏幕输出结果函数
    
    int main()
    {
    	const int N = 10;//定义常数
    	int arr[N];//定义数组
    	
    	srandData(arr, N);
    	selectSort(arr, N);
    	display(arr, N);
    
    	return 0;
    
    }
    
    void srandData(int *a, int n)
    {
    	srand(time(NULL));
    
    	for(int i = 0; i < n; i++)
    	{
    		a[i] = rand() % 50;//取50以下的数字
    		cout << a[i] << " ";
    	}
    
    	cout << endl;
    }
    
    void swap(int *b, int *c)
    {
    	
    	int temp = *c;
    	*c = *b;
    	*b = temp;
    }
    
    void selectSort(int *e, int n)
    {
    	for(int i = 0; i < n - 1; i++)
    	{
    		int min = i;
    		for(int j = i + 1; j < n; j++)
    		{
    			if(e[min] > e[j])
    			{
    				min = j;//记下当前数字的位置
    			}
    		}
    		if(min != i)
    		{
    			swap(&e[min], &e[i]);
    		}
    	}
    }
    void display(int *d, int n)
    {
    	for(int i = 0; i < n; i++)
    	{
    		cout << d[i] << " ";
    	}
    	cout << endl;
    }
    
    展开全文
  • 将三个数字从小到大排列(或者从大到小排列)c及python 很基础的算法题 输入三个整数x,y,z,请把这三个数由小到大输出。 c: 一般情况下,我们是用三个if来进行一个数字的变化,很简单的依次排序。 代码如下: ...

    将三个数字从小到大排列(或者从大到小排列)c及python

    很基础的算法题
    输入三个整数x,y,z,请把这三个数由小到大输出。

    c:

    一般情况下,我们是用三个if来进行一个数字的变化,很简单的依次排序。
    代码如下:

    #include<stdio.h>
    int main( )
    { 
    int a , b , c ,t;
    scanf(“%d , %d , %d” , &a , &b ,&c) ;
    printf(“\n\n a=%d , b=%d , c=%d \n” ,a , b , c) ;
    if(a>b)
    {t=a ; a=b ; b=t ;}
    if(a>c)
    {t=a ; a=c ; c=t ;}
    if(b>c)
    {t=b ; b=c ; c=t ;}
    printf(“\n\n a=%d , b=%d , c=%d \n” ,a , b , c) ; 
    }
    

    2.我做一道题的时候,喜欢将这道算法的解法都尽量写出来,所以还有第二种思路。
    第二种思路其实不难,我们在这里放三个数字,a b c。要是他不满足a<b<c的话我们就将他们的前两个或者后两个数字交换位置,
    举个例子,比如2,3,1的话,很显然前面两个数字排序符合,那么我们交换后两个他就会变成2 1 3那么前面两个又不满足了,那我们在交换前面两个 1 2 3这样就成了,当然交换了两次会比前面复杂一点,但是只是三个整形,实际上,这些多余的复杂度对现在的电脑处理器来说,什么都不算。
    代码如下:

    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    	int x,y,z,a;
    	scanf("%d %d %d",&x,&y,&z);
    	while(1) 
    	{
    	if(x>y)
    	   {a=x;x=y;y=a;}
    	if(y>z)
    	   {a=y;y=z;z=a;}
    	if(x<=y&&y<=z) 
    	    break; 
    	}
        printf("%d %d %d",x,y,z);
     }
    

    python:

    python相对c有很多其他的用法,用法很多,我就不一一详解,我们可以用尽量短的代码去完成这个算法,那么我们有何必去使用更长的呢?
    这里我使用了字典以及列表的转化,排序函数,以及一次迭代
    代码如下:

    a['A'],a['B'],a['C']=map(int,input().split())
    b_list=sorted(list(a.values()))
    for i in range(3):    
        print(b_list[i]," ",end="")
    

    大家注意在列表中sorted函数是有返回值的,他的返回值是一个排序好的列表,而sort函数的返回值却是none,所以这里的list(a.values())也可以在后面加上.sort()
    这里的values函数是提出字典中的值,并返回一个名为dic_values列表,大家有兴趣可以去查一下,这里就不详解了

    展开全文
  • Python实现把列表里的数字从小到大的顺序排列

    万次阅读 多人点赞 2019-04-13 19:20:09
    拿出列表里的第0个元素,把它赋给一个叫做“最小值”的变量,然后用这个变量去跟后面的每个数字一一对比,如果碰到比它小的,就把那个新发现的小数字赋给“最小值”变量,否则维持原状。 这样一轮下来,就能找到...

    一、自己造轮子

    第一种方式的思路:

    拿出列表里的第0个元素,把它赋给一个叫做“最小值”的变量,然后用这个变量去跟后面的每个数字一一对比,如果碰到比它小的,就把那个新发现的小数字赋给“最小值”变量,否则维持原状。

    这样一轮下来,就能找到当前这些数字里的最小值,也就是应该在升序的列表中排在队首的元素。而这一轮当中,我们进行了“”元素总个数-1”次比较。紧接着,把这个最小的元素从原列表中删除。再用同样的方法,找出剩下的数字里最小的。

    列表里一共有10个数字的话,上述过程就应该重复9次。因为只剩下一个元素的时候就不需要比较了,它自然是最大的,排在队尾。

    这种排序方法叫做“选择排序”。算法的复杂度是O(n²)。

    lst=[2,56,4,9,17,30,7,8,24,1]
    order=[]
    
    for j in range(10,1,-1):
    #j代表列表里当前的元素个数
        smallest=lst[0]
        for i in range(1,j):
        #i代表元素的索引,也就是拿第0个元素和列表里的第1个比较,第2个比较,一直比到第j-1个,完成一轮
            if smallest<=lst[i]:
                pass
            else:
                smallest=lst[i]
    
        lst.remove(smallest)
        #从原列表中移除已经确认的当前最小元素
        order.append(smallest)
        #把这个当前最小元素追加到升序列表中
    order.append(lst[0])
    #列表里最后剩下的那个元素追加到队尾
    print(order)  

    第二种方式的思路:

    我们从列表中找到一个数字作为基准,然后去查看其它数字,比它小的放到一个新列表里,并把这个新列表放到基准数字的左边,比它大的数字放到另外一个列表里,并把这个装满大数字的列表放到基准数字的右边。一种非常理想的情况是,小数字列表里的元素本身就已经按照升序排好了,大数字列表里的元素也本身就按照升序排好了,那我们只要把小数字列表、基准数字、大数字列表拼接到一起就完成了全部数字的排序。而这个理想情况也是需要我们自己去实现的。我们要不断重复找基准数字、把其他数字分为小数字阵营和大数字阵营的工作,直到什么时候结束呢?直到最后切分出来的小数字/大数字列表里只有一个元素或一个元素都没有就可以停止了。

    现在我们有了基线条件,还有了需要不断重复的工作。一个词呼之欲出——递归!

    其实这种排序方式就是“快速排序”。算法的复杂度是O(n log n)

    def quicksort(arr):
        '''快速排序函数'''
        if len(arr)<2:
            return arr
            #上面是描述基线条件的部分,当列表里的元素不足两个时,直接原样返回
        else:
            pivot=arr[0]
            #把列表开头的元素当做基准数字
            less=[]
            greater=[]
            #上面创建了用于存放小于基准数字和大于基准数字的元素的空列表
            for i in arr[1:]:
                if i<=pivot:
                    less.append(i)
                else:
                    greater.append(i)
                    #上面是遍历列表里除掉基准数字以外的数字,按照我们的规定分别存放到两个列表里
            return quicksort(less)+[pivot]+quicksort(greater)
            #返回的就是我们需要的顺序,这里记得要把基准数字放到一个单独的列表里,否则拼接会失败
    
    print(quicksort([23,9,55,33,24,15]))
    #随便找个无序列表试一试我们的函数好不好用
        
    
    

    二、用前人造好的轮子

    lst=[2,56,4,9,17,30,7,8,24,1]
    lst.sort()
    #sort是列表的一个方法,默认会把列表里的数字按照升序排列
    print(lst)

    *********************************************************************************************************************

    如果这篇博文帮到了你,就请给我点个吧(#^.^#)

    有疑问也欢迎留言~博主可nice啦,在线秒回ヾ(◍°∇°◍)ノ゙

    展开全文
  • 15个数字排列从小到大

    千次阅读 2016-03-31 21:04:56
    Private Sub Command1_Click() Cls Dim a As Integer Dim xier(15) As Integer n = 1 While n xier(n) = Int(Rnd * 1000) n = n + 1 Wend Dim swap As Integer m = 1 While m ... If
  • 冒泡排序是较为简单的一种排序方法。 冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡...这个算法的名字由来是因为越的元素会经由交换慢慢“浮”数列的顶端,故名。 以下是我写的代码 此程序在vs环境下运行:...
  • 输入3个数字要求从小到大排列.c

    千次阅读 2018-11-27 19:36:09
    输入3个数字要求从小到大排列.c 解题思想:输入3个整型变量,用其中两个数字判断大小,如果前面的那个数大于后面的一个数字,用 t 做交换变量,交换两个数字的位置 #include&lt;stdio.h&gt; void main() { ...
  • 从小到大排列一组数,利用列表框实现,也可以用数组实现
  •  * 输入一串数字(String),按从小到大排列,比如我输入的是897--&gt;7&lt;8&lt;9  */  public static void main(String[] args) {  Scanner input = new Scanner(System.in);  Stri...
  • 输入一串数字(int),按从小到大排列

    千次阅读 2018-10-28 08:58:46
     * 1,输入一串数字(int),按从小到大排列,比如我输入的是897--&gt;7&lt;8&lt;9  */  public static void main(String[] args) {  Scanner input = new Scanner(System.in);  Syst...
  • 输入三个数从小到大排列 运行程序 代码 //导包 import java.util.Scanner; //声明一个类名为Test的类 public class Test { // mian方法 程序入口 public static void main(String[] args) { // 输入三个数...
  • 如果要将数组中的数字按照从小到大的顺序排列。 完成思路:将最小的数字放在数组的第一项,将第二小的数组放在第二项,一直重复,知道完成。 那么如何将最小的数字放在数组索引为0的位置呢? 示例: for(int ...
  • package demo0921; import java.util.*; public class demo1919 { public static void main(String[] args) { // TODO 自动生成的方法存根 ... System.out.println("请输入三个数字:"); int a ...
  • #include void swap(int arr[], int n) { int i; int j; int temp; int *p, *q; for(i = 0; i ; i++) { for(j = i + 1; j ; j++) { if(arr[i] > arr[j]) { p
  • 起泡法排序,从小到大顺序排列

    千次阅读 2020-09-21 17:23:12
    //每次将相邻的两个数进行比较,将小的调前面 //n个数要进行n-1趟比较,每一趟比较要进行n-1次 //所以第j趟要进行n-j趟比较 #include <stdio.h> int main (void) { int a[10]; int i,j,t; printf("请输入...
  • 输入若干个正整数,判断每个数从高位到低位各位数字是否按值从小到大排列,请根据题意,将程序补充完整。 #include <stdio.h> int fun1(int m); int main(void) { int n; scanf("%d", &n); while ...
  • ASCII码值从小到大排列顺序

    万次阅读 2015-07-01 10:40:00
    ASCII码的值如下 48~57为09十个阿拉伯数字; 65~90为26个大写英文字母; 97~122号为26个小写英文字母。
  • 部分代码: #include #include #define N 5
  • 对数组中的数字从小到大排序,很多时候需要用的多,需要的朋友可以参考下
  • 已知两个已经按从小到大排列的数组,将它们中的所有数字组合成一个新的数组,要求新数组也是按照从小到大的顺序。请按照上述描述完成函数:int merge(int *array1, int len1, int *array2, int len2, int *array3); ...
  • 通过冒泡排序实现从小到大排列

    千次阅读 2016-03-20 20:18:25
    * 通过冒泡排序实现从小到大排列 * * 冒泡排序:将数组中第一位与第二位比较,小的数字放在前面,然后再由第二位与第三位作比较,小的数放前面; * 按照这个顺序,得出最大的那个数,并且这个最大的数放在最...
  • 自行给定一个从小到大排好序的数组,输入一个数并将其插入到原始数组中,新的数组还是满足从小到大排列顺序。 思路:将输入的数与排好序的数组逐一比较,放在适合的位置,若该数大于数组内的所有数,则放该数在...
  • Java 输入三个整数 从小到大排列

    千次阅读 多人点赞 2020-12-01 19:27:19
    今天突然一想控制台输入三个数,如何将这三个数从小到大排序 经过段短暂的思考,直接上代码: public class Test04 { public static void main(String[] args) { demo01(); } /*7.题目:输入三个整数x,y,z,请把...
  • 自定义一组有首地址为data的10个字的数组,请利用冒泡排序算法来编写程序,以使该数组中的数按照从小到大的次序有序化。(注:10个字可以自己定义。) datas segment buffer dw 7,5,3,2,6,9,10,1,8 datas ends ...
  • 从终端输入10个数字(乱序),利用简单选择排序法对这10个数字排序,结果从小到大排列。 #include<stdio.h> #define ARRAY_SIZE(buf) (sizeof(buf) / sizeof(buf[0])) void scanf_nu(int *buf, int n) { int...
  • 自定义一组有首地址为data的10个字的数组,请利用冒泡排序算法来编写程序,使该数组中的数按照从小到大的次序有序化。(注:10个字可以自己定义。) datas segment data1 dw 7,5,3,2,6,9,10,1,8 datas ends 冒泡...
  • 主函数代码(C++)int main(){ int i,j; Book bk[10],temp; for(i=0;i&lt;10;i++) book[i].input(); for(j=i+1;j&lt;10;j++){ if(bk[i].price&gt;bk[j].price){ temp=b[i];... b[j...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,460
精华内容 14,984
关键字:

从小到大的数字排列