• 史上最详细的C语言和Python的选择排序算法


    未经同意,请勿转载!如有收货,请留一赞,不胜感激!

    同时欢迎加入我们的qq交流群:326079727

    话不多说上代码:

    C语言:

    //选择排序走起
    //原理:吃透原理再去实现,选择排序也是类似于冒泡排序,时间复杂度也是O^2,外层循环是十轮。
    // 每轮都找出最小值,然后把它放到最前,已经放在前面的 下一轮就不用再去比较
    void choice(){
        int init_arr[10] = {1,5,9,8,7,6,7,99,8,10};
        //获取数组的长度,因为c语言的每个int型占四个字节,所除以4
        int len = sizeof(init_arr)/4;
        int tmp;
        for (int i = 0; i < len; i++) {
            //int mix=init_arr[i];//初始化最小值为mix为数组的第一个数
            for (int j = i; j < len; j++) {//内层循环遍历,找出最小值,这里要从i位开始遍历,因为已经放在前面的(i之前的) 下一轮就不用再去比较
                if (init_arr[j]<init_arr[i]){//如何其中的值比当前的init_arr[i]值还要小则交换数值
                    tmp = init_arr[i];
                    init_arr[i]=init_arr[j];
                    init_arr[j] = tmp;
                }
            }//完成一轮for则能找出这其中的最小值,然后放到前面,等下一轮会初始化最小值为init_arr[i+1]
        }
        for (int k = 0; k < len; k++) {//循环遍历打印
            printf("%d
    ",init_arr[k]);
        }
    }

    Python:

    #选择排序走起
    def choice():
        list=[5,9,88,99,54,66,77,315,88,315,21]
        #选择排序,顾名思义就是选择,每轮选出最小的值来,然后放到前面.
        for i in range(0,len(list)):#外层循环,一轮找一个最小值
            for j in range(i,len(list)):#内层循环,遍历列表,比较初始值与list[j]的大小,如果大,则把最小值赋给list[i],继续j++
                if (list[i]>list[j]):
                    list[j],list[i]=list[i],list[j]
                j+=1#j++继续比较下一个数
            i+=1#i++进行下一轮
        for k in list:#遍历打印
            print(k)

  • 相关阅读:
    List of the best open source software applications
    Owin对Asp.net Web的扩展
    NSwag给api加上说明
    'workspace' in VS Code
    unable to find valid certification path to requested target
    JMeter的下载以及安装使用
    exception disappear when forgot to await an async method
    Filter execute order in asp.net web api
    记录web api的request以及response(即写log)
    asp.net web api的源码
  • 原文地址:https://www.cnblogs.com/szj666/p/11865632.html
Copyright © 2020-2023  润新知