zoukankan      html  css  js  c++  java
  • 史上最详细的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)

  • 相关阅读:
    图论算法(三) 最短路SPFA算法
    图论算法(二)最短路算法:Floyd算法!
    图论算法(一)存图与STL第六弹——vector容器
    C++指针变量的基本写法
    杂记——深度优先搜索(dfs)与出题感想
    分治算法(二分查找)、STL函数库的应用第五弹——二分函数
    网站开发小技巧总结
    网站开发动态效果插件
    jquery获得ul下li的个数
    jquery的循环函数和点击事件绑定
  • 原文地址:https://www.cnblogs.com/szj666/p/11865632.html
Copyright © 2011-2022 走看看