Python处理数据,python大法好

  由于找实习,要学习python处理数据,python连接mysql,python读写文件,python读写xlsx文件,这些只要引入了相关的包,就非常容易,处理过程非常清晰。模块如果封装的好,没怎么学过编程的人也很容易上手。

  就把python当做自行车用,用脚本处理一些重复性的工作非常便捷,但程序就是写不长,但是这些脚本已经能够完成我们的工作了。另外,pycharm真的很好用,不仅体现在代码自动提示,还在安装外部库时非常方便。

  看一下python写的快速排序:

1
2
3
4
5
6
7
def quicksort(arr):
    if len(arr) < 2:
        return arr
    else:
        min = [x for x in arr[1:] if x < arr[0]]
        max = [x for x in arr[1:] if x >= arr[0]]
        return quicksort(min) + [arr[0]] + quicksort(max)

  看一下java写的快速排序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class Main{
  public static void main(String[] args) throws IOException{
        InputStreamReader in = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(in);
 
        int num = Integer.parseInt(br.readLine());
        int[] arr = new int[num];
 
        String[] res = br.readLine().split(" ");
        for (int i = 0; i < num; i++) {
            arr[i] = Integer.parseInt(res[i]);
        }
 
        quickSort(arr, 0, num - 1);
 
        for (int i = 0; i < num; i++) {
            System.out.print(arr[i] + " ");
        }
        br.close();
 
    }
    //闫总快排模板 v.v
    public static void quickSort(int[] q, int l, int r) {
        if (l >= r) return;
        int x = q[l+r>>1];
 
        //Define positions of two pointers
        int i = l - 1;
        int j = r + 1;
 
        while (i < j) {
            do i++; while (q[i] < x);
            do j--; while (q[j] > x);
            //do Swap
            if (i < j) {
                int temp = q[i];
                q[i] = q[j];
                q[j] = temp;
            }
        }
 
        quickSort(q, l, j);
        quickSort(q, j + 1, r);
    }
}
 
作者:unipie
链接:https://www.acwing.com/solution/content/5996/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  看看java写的,i++, j++,自己都蒙圈了,c++也要考虑边界条件。

  为什么python能够这么简单呢?在于python中数组强大的抽象。java/c++也可以开辟额外空间,不考虑边界问题,但是代码就变长了。python帮忙我们屏蔽了底层操作,提供了很好的抽象。在快速开发的时代,python的这用优势还是很明显的。

  

 

参考博客:快速排序算法的简单理解

posted @   懂得了才能做一些改变  阅读(302)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示