目录
  • python手写选择排序
  • Python不用sort对列表排序
    • 有道面试题
    • 处理思路大致
  • 总结

    python手写选择排序

    函数mysort(alist)用于计算包含数字的列表的排序(包括升序和降序。不能使用python中的函数sort或sorted)。

    import random
    def section_sort1(alist):
        n = len(alist)
        # 定义外围循环次数
        for j in range(n - 1):
            # 定义min_index最小值的索引为j,目的找出最小值
            min_index = j
            # cur下标移动的范围,比较次数的范围限定
            for i in range(j + 1, n):
                # 元素比较,找出最小的值对应的索引
                if alist[i] < alist[min_index]:
                    # 移动到最小元素的位置
                    min_index = i
     
            # 保证最新的min_index不在无序队列的首位,那么就将它和无序队列的首位替换
            if min_index != j:
                alist[j], alist[min_index] = alist[min_index], alist[j]
     
    def section_sort2(alist):
        n = len(alist)
        # 定义外围循环次数
        for j in range(n - 1):
            # 定义min_index最小值的索引为j,目的找出最小值
            min_index = j
            # cur下标移动的范围,比较次数的范围限定
            for i in range(j + 1, n):
                # 元素比较,找出最小的值对应的索引
                if alist[i] > alist[min_index]:
                    # 移动到最小元素的位置
                    min_index = i
     
            # 保证最新的min_index不在无序队列的首位,那么就将它和无序队列的首位替换
            if min_index != j:
                alist[j], alist[min_index] = alist[min_index], alist[j] 
     
    n=int(input())
    alist=[random.randint(0,100)for i in range(n)]
    print(alist)
    section_sort1(alist)
    print("排序后1:",alist)
    section_sort2(alist)
    print("排序后2:",alist)

    Python不用sort对列表排序

    有道面试题

    L = [2,3,5,4,9,6,8,7,1],从小到大排序,不许用sort,输出[1,2,3,4,5,6,7,8,9]

    如果用sort很简单,如果不用sort的话,处理起来就麻烦些

    处理思路大致

    创建一个空列表,遍历原先列表,找出最小值,放到空列表中,原列表弹出该值,直到无值。

    有了上面的思路,就好处理了:

    >>> L = [2,3,5,4,9,6,8,7,1]
    >>> T = []
    >>> while len(L) > 0:
    ...     m = min(L)
    ...     L.remove(m)
    ...     T.append(m)
    >>> T
    [1, 2, 3, 4, 5, 6, 7, 8, 9]

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。