Python处理数据,python大法好
由于找实习,要学习python处理数据,python连接mysql,python读写文件,python读写xlsx文件,这些只要引入了相关的包,就非常容易,处理过程非常清晰。模块如果封装的好,没怎么学过编程的人也很容易上手。
就把python当做自行车用,用脚本处理一些重复性的工作非常便捷,但程序就是写不长,但是这些脚本已经能够完成我们的工作了。另外,pycharm真的很好用,不仅体现在代码自动提示,还在安装外部库时非常方便。
看一下python写的快速排序:
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写的快速排序:
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的这用优势还是很明显的。
参考博客:快速排序算法的简单理解
日进有功

浙公网安备 33010602011771号