首页 > 编程语言 >python: Enum

python: Enum

时间:2023-07-02 23:12:40浏览次数:51  
标签:arr sortingalgorithms CheckSort swapped python Enum range 升序

 

# encoding: utf-8
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 11
# Datetime  : 2023/7/2 21:18
# User      : geovindu
# Product   : PyCharm
# Project   : pythonStudyDemo
# File      : CheckSort.py
# explain   : 学习

from enum import Enum

class CheckSort(Enum):
    """
    选择排序方式

    """

    Asc=1,
    """
    降序
    """
    Desc=2
    """
    升序
    """





# encoding: utf-8
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 11
# Datetime  : 2023/7/2 20:25
# User      : geovindu
# Product   : PyCharm
# Project   : pythonStudyDemo
# File      : TenSortAlgotrthms.py
# explain   : 学习 十种排序

from enum import Enum
import sortingalgorithms.CheckSort
import sortingalgorithms.duplicateChecking
class TenSortAlgotrthms(object):
    """

    """
    def bubbleSort(self,arr):
        """
        1。冒泡排序方法  从小至大 升序
        :param arr 整数数组  如 arr = [64, 34, 25, 12, 22, 11, 90]
        :param checkSort选择排序方式 Desc 降序 Asc 升序
        :return:
        """
        n = len(arr)
        swapped = False
        for i in range(n - 1):
            for j in range(0, n - i - 1):
                 if arr[j] > arr[j + 1]:
                    swapped = True
                    arr[j], arr[j + 1] = arr[j + 1], arr[j]

            if not swapped:
               return

    def bubbleSort(self,arr,checkSort):
        """
        1。冒泡排序方法  从小至大 升序
        :param arr 整数数组  如 arr = [64, 34, 25, 12, 22, 11, 90]
        :param checkSort选择排序方式 Desc 降序 Asc 升序
        :return:
        """
        n = len(arr)

        swapped = False
        if(checkSort.Asc==sortingalgorithms.CheckSort.CheckSort.Desc):
            for i in range(n - 1):
                for j in range(0, n - i - 1):
                    if arr[j] > arr[j + 1]:
                        swapped = True
                        arr[j], arr[j + 1] = arr[j + 1], arr[j]

                if not swapped:
                    return

        else:
            for i in range(n - 1):
                for j in range(0, n - i - 1):
                    if arr[j] < arr[j + 1]:
                        swapped = True
                        arr[j], arr[j + 1] = arr[j + 1], arr[j]

                if not swapped:
                    return



    def bubbleSortIndex(self,arr,checkSort,eqLeter:int):
        """
        1。冒泡排序方法  从小至大 升序
        :param arr 整数数组  如 arr = [64, 34, 25, 12, 22, 11, 90]
        :param checkSort选择排序方式 Desc 降序 Asc 升序
        :param eqLeter 找查指定的数字的下标
        :return:返回下标 元组
        """
        n = len(arr)
        fin = sortingalgorithms.duplicateChecking.DuplicateChecking()
        index = fin.findindex(arr, eqLeter)
        #print("index",index,eqLeter)
        swapped = False
        if(checkSort.Asc==sortingalgorithms.CheckSort.CheckSort.Desc):
            for i in range(n - 1):
                for j in range(0, n - i - 1):
                    if arr[j] > arr[j + 1]:
                        swapped = True
                        arr[j], arr[j + 1] = arr[j + 1], arr[j]

                if not swapped:
                    return index


        else:
            for i in range(n - 1):
                for j in range(0, n - i - 1):
                    if arr[j] < arr[j + 1]:
                        swapped = True
                        arr[j], arr[j + 1] = arr[j + 1], arr[j]

                if not swapped:
                    return index

  

调用:

    # 排序
    arrs= [64, 34, 25, 2, 22, 11, 90,88,34]
    fin=sortingalgorithms.duplicateChecking.DuplicateChecking()
    qc=34
    inde=fin.findindex(arrs,qc)
    print(f"顺序查询数组中{qc}查到下标是:",inde)
    for ud in inde:
        print(ud+1)

    sort=sortingalgorithms.TenSortAlgotrthms.TenSortAlgotrthms()
    sort.bubbleSort(arrs,sortingalgorithms.CheckSort.CheckSort.Desc)
    print("冒泡排序:")
    for i in range(len(arrs)):
        print("% d" % arrs[i], end=" ")
    q=5
    duindex=sort.bubbleSortIndex(arrs, sortingalgorithms.CheckSort.CheckSort.Desc,q)
    print(f"\n{q}下标是:",duindex)

  

 

标签:arr,sortingalgorithms,CheckSort,swapped,python,Enum,range,升序
From: https://www.cnblogs.com/geovindu/p/17521631.html

相关文章

  • python之numpy模块
    1NumPy是什么?NumPy(全称:NumericPython)是python的第三方模块,主要用于计算、处理一维或多维数组。Numpy通常与Scipy(Python科学计算库),Matplotlib(Python绘图库),Pandas(Python数据处理)等组合使用,这样可以广泛的代替Matlab的使用。2为什么使用NumPy?Python中没有内置数组(array)类......
  • 【Python自制工具软件】批量图片转PDF小工具——PIC2PDF
    楔子大家在工作当中总会冒出各种各样的需求,尤其当面对繁琐的工作时。“如果有那样一款想象中的工具就好了!”可以瞬间解决手头工作的想象中的工具,是否存在呢?当然,然而获得它总是需要我们花费大量的时间去筛选甄别,有的充斥大量广告,有的则需要付出不菲的费用。其实完全可以自己上......
  • Python | 文件处理
    文件的读写文件对象在python中用open()可以创建一个文件对象。open()使用方法:open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)参数说明:file:必需,文件路径(相对或者绝对路径)。mode:可选,文件打开模式(常用)buf......
  • Google Colab:云端的Python编程神器
    GoogleColab,全名GoogleColaboratory,是GoogleResearch团队开发的一款云端编程工具,它允许任何人通过浏览器编写和执行Python代码。Colab尤其适合机器学习、数据分析和教育目的。它是一种托管式Jupyter笔记本服务,用户无需设置,就可以直接使用,同时还能获得GPU等计算资源的免费使用......
  • Python | with关键字详解
    with使用背景对于系统资源如文件、数据库连接、socket而言,应用程序打开这些资源并执行完业务逻辑之后,必须做的一件事就是要关闭(释放)该资源。比如Python程序打开一个文件,往文件中写内容,写完之后,就要关闭该文件,如果不关闭会出现什么情况呢?极端情况下会出现Toomanyopenfiles......
  • python: multiple inheritance
    多继承"""Mother.py多继承类inheritedAnimalpython(类名)superjava继承可以使用extends和implements这两个关键字来实现继承C++:public类名C#:类名可以重写父类方法edit:geovindu,GeovinDudate:20230702IDE:PyCharm2023.1.2"""importsysimportosi......
  • python中globals()的用法
    python中globals()的用法 1.获取所有的全局变量,获取到的内容如下:{'__name__':'__main__','__doc__':None,'__package__':None,'__loader__':<_frozen_importlib_external.SourceFileLoaderobjectat0x7efc4bd1d960>,�......
  • Python入门
    一、逻辑运算符的一些记录#非布尔值的与或运算#当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值#与运算的规则#与运算是找False的,如果第一个值是False,则不看第二个值#如果第一个值是False,则直接返回第一个值,否则返回第二个值#或......
  • Python - 编写Unicode 字符串
    Python的字符串字面量支持"\xNN"十六进制字节值转义以及"\uNNNN"和"\UNNNNNNNN"Unicode转义。第一种形式用4位十六进制数编码2字节(16位)位字符码点第二种形式用8位十六进制数编码4字节(32位)码点。十六进制值0xCD和0xE8,是ASCII的7位字符范围之外的两个特殊的声调字符......
  • Python 满足列中任意两个数之和等于目标值,输出这两个数的值和所在列表的索引值
    给定一个列表为nums=[2,7,11,15],目标值target=9,找出列表中任意2数之和等于9的元素以及所在位置思路:双重遍历去一对一的比较判断1nums=[2,7,11,15,1,8,2]2target=93list_new=[]4deffind_num_indx():56foriinrange(len(nums)):......