list排序

sh_04_列表排序

落爺英雄遲暮 提交于 2019-11-29 14:15:44
sh_04_列表排序 name_list = ["zhangsan", "lisi", "wangwu", "wangxiaoer"] num_list = [6, 8, 4, 1, 10] # 升序 # name_list.sort() # num_list.sort() # 降序 # name_list.sort(reverse=True) # num_list.sort(reverse=True) # 逆序(反转) name_list.reverse() num_list.reverse() print(name_list) print(num_list) 来源: https://www.cnblogs.com/shaohan/p/11519345.html

java集合框架详解

这一生的挚爱 提交于 2019-11-29 12:44:09
一、概述 Java集合类主要由两个根接口Collection和Map派生出来的,Collection派生出了三个子接口:List、Set、Queue(Java5新增的队列),因此Java集合大致也可分成List、Set、Queue、Map四种接口体系,(注意:Map不是Collection的子接口)。 数据与集合的区别 数组长度不可变化而且无法保存具有映射关系的数据;集合类用于保存数量不确定的数据,以及保存具有映射关系的数据。 数组元素既可以是基本类型的值,也可以是对象;集合只能保存对象。 二、Collection UML图 其中List代表了有序可重复集合,可直接根据元素的索引来访问;Set代表无序不可重复集合,只能根据元素本身来访问;Queue是队列集合;Map代表的是存储key-value对的集合,可根据元素的key来访问value。   上图中淡绿色背景覆盖的是集合体系中常用的实现类,分别是ArrayList、LinkedList、ArrayQueue、HashSet、TreeSet、HashMap、TreeMap等实现类。 collection的API Collection 接口将对象组织到一起。数组不能调整大小,并且只能组织相同类型的对象,而Collections允许添加任何类型的对象,并且不强迫你指定初始大小。 需要注意的重要的一点是, Collection 扩展了

Collections 工具类

谁说胖子不能爱 提交于 2019-11-29 12:34:55
针对 List 集合的方法 排序 sort 如果集合元素为基本数据类型,采用快排;对于集合元素为引用类型,采用归并排序。 //对指定 List 集合的元素按照自然排序 void sort(List<?> list); //对 List 集合元素根据 Comparator 进行排序 void sort(List<T> list, Comparator<? super T> c); public static void main(String[] args) { List<Integer> nums = Arrays.asList(10,-5,20,0).stream().collect(Collectors.toList()); System.out.println(nums); //[10, -5, 20, 0] //自然排序 Collections.sort(nums); System.out.println(nums); //[-5, 0, 10, 20] //自定义排序,降序排列 Collections.sort(nums, (o1, o2) -> o1 < o2 ? 1 : (o1 == o2 ? 0 : -1)); System.out.println(nums); //[20, 10, 0, -5] } 二分查找 binarySearch //List 必须是有序的

python实现归并排序

时光怂恿深爱的人放手 提交于 2019-11-29 12:06:52
# 归并排序 def merge_sort(list): n = len(list) # 先将待排序的数拆开 if n <= 1: # 拆分到只有一个元素为止,返回。 return list mid = n // 2 # print(list[:mid]) # print(list[mid:]) left_li = merge_sort(list[:mid]) # 归并排序后产生的新有序列表 right_li = merge_sort(list[mid:]) # print(left_li) # print(right_li) # 合并left和right,将2个有序的子序列合并为一个新的整体 left_pointer, right_pointer = 0, 0 # 存放合并后的结果值 result = [] while (left_pointer < len(left_li) and right_pointer <len(right_li) ): if left_li[left_pointer] > right_li[right_pointer]: result.append(right_li[right_pointer]) right_pointer += 1 else: result.append(left_li[left_pointer]) left_pointer +=

Dart: List排序

蹲街弑〆低调 提交于 2019-11-29 11:58:06
var list = <Item>[ Item(title: "item 1", isTopping: true), Item(title: "item 2"), Item(title: "item 3", isTopping: true), Item(title: "item 4"), ]; main(List<String> arguments) async { /// 通过排序把顶置的信息放在前面 list.sort((a, b) => b.top.compareTo(a.top)); for (var item in list) { print(item.title); // 1324 } } class Item { Item({ this.title = '', this.isTopping = false, }); String title; bool isTopping; int get top => isTopping ? 1 : 0; } 转载于:https://www.cnblogs.com/ajanuw/p/11028972.html 来源: CSDN 作者: weixin_33894992 链接: https://blog.csdn.net/weixin_33894992/article/details/94612818

博客中gitalk最新评论的获取 github api使用

主宰稳场 提交于 2019-11-29 10:37:21
博客中,对于网友的评论以及每篇文章的评论数还是很重要的。但是基于静态的页面想要存储动态的评论数据是比较难的,一般博客主题中都内置了评论插件,但是博客主题中对于最新评论的支持显示还是很少的,至少目前我是没怎么发现。博客 Powered by Hexo & Icarus ,采用 Gitalk 评论,再次感谢此三位作者的辛勤码代码,才有了以下的内容。基于此背景基础上,聊聊最新评论的实现。 博客的使用, Hexo & Icarus ,采用 Gitalk 评论 的使用自行百度了。 使用场景 最新评论列表 最热文章列表(基于评论数判断是否最热,也比较片面,但是侧面也能反映,问题不大) 使用方法 主要参考自 官方文档 目前主要用到 两个方法 ,一个是获取仓库下所有的issue,每个issue节点下有相关的评论数,以及对应issue下的评论的url。 方法1: List issues for a repository GET /orgs/:org/issues 参数列表 Name Type Description milestone integer or string If an integer is passed, it should refer to a milestone by its number field. If the string * is passed, issues with

DataFrame和Series的排序

柔情痞子 提交于 2019-11-29 10:18:51
更多大数据分析、建模等内容请关注公众号《bigdatamodeling》 ################################### 排序 ######################################## from pandas import DataFrame, Series ##### Series按索引排序 sort_index方法 返回新对象 obj = Series([1, 3, 2, 5, 6], index=list('dabce')) obj.sort_index() obj.sort_index(ascending=False) ##### Series按值排序 sort_values方法 返回新对象 obj.sort_values() obj.sort_values(ascending=False) ##### DataFrame按引索引/列索引排序, # 默认axis=0,行索引排序 # axis=1,列索引排序 frame = DataFrame(np.random.randn(4, 3), columns=list('dbe'),index=['Ut', 'Oh', 'Tex', 'Ore']) frame.sort_index() # 同frame.sort_index(axis=0) frame.sort_index

java集合框架详解

纵然是瞬间 提交于 2019-11-29 09:40:37
一、数组和集合的比较 数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下: 1 :数组能存放基本数据类型和对象,而集合类存放的都是对象的引用,而非对象本身! 2 :数组容易固定无法动态改变,集合类容量动态改变。 3 :数组无法判断其中实际存有多少元素, length 只告诉了数组的容量,而集合的 size() 可以确切知道元素的个数 4 :集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式 5 :集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,大大提高了软件的开发效率 二、 Java 集合 此图可用 Windows 系统自带画图工具查看比较清晰 Collection 和 Map ,是集合框架的根接口。 Collection 的子接口: Set: 接口 --- 实现类: HashSet 、 LinkedHashSet Set 的子接口 SortedSet 接口 --- 实现类: TreeSet List: 接口 --- 实现类: LinkedList,Vector,ArrayList List 集合 有序列表,允许存放重复的元素; 实现类: ArrayList :数组实现,查询快,增删慢,轻量级; ( 线程不安全 ) LinkedList :双向链表实现,增删快

算法 - 排序

≡放荡痞女 提交于 2019-11-29 06:52:04
冒泡排序 O(n 2 ) 思想 重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小(大)的元素会经由交换慢慢"浮"到数列的顶端。 图示 代码 def bubbleSort(arr): n = len(arr) # 遍历所有数组元素 for i in range(n): # 这里的 -1 很精髓,刚好循环到倒数第二项,倒数第二项这一轮的时候会跟最后一项做比较,不需要再多走最后一遍了,没有意义了 # 不一定要 n-i-1 或者 n-i,哪怕是n都行,这样就实打实的循环了n^2次了而已,也是能正常排序的,n-i-1或者n-i的目的是为了优化而已 for j in range(0, n-i-1): if arr[j] > arr[j+1] : arr[j], arr[j+1] = arr[j+1], arr[j] arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print ("排序后的数组:") for i in range(len(arr)): print ("%d" %arr[i]), 选择排序 O(n 2 ) 思想 遍历无序列表,从中选出最小的元素,依次添加到新的列表中。 首先在未排序序列中找到最小

算法学习总结(2)——温故十大经典排序算法

こ雲淡風輕ζ 提交于 2019-11-29 06:04:42
本文链接:https://blog.csdn.net/u012562943/article/details/100136531 一、什么是排序算法 1.1、排序定义 对一序列对象根据某个关键字进行排序。 1.2、排序术语 稳定 : 如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定 :如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序 :所有排序操作都在内存中完成; 外排序 :由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 时间复杂度 : 一个算法执行所耗费的时间。 空间复杂度 :运行完一个程序所需内存的大小。 1.3、算法总结 ​ ( 注意 :n指数据规模;k指“桶”的个数;In-place指占用常数内存,不占用额外内存;Out-place指占用额外内存) 1.4、算法分类 ​ 1.5、比较和非比较的区别 常见的 快速排序、归并排序、堆排序、冒泡排序 等属于 比较排序 。在排序的最终结果里,元素之间的次序依赖于它们之间的比较。每个数都必须和其他数进行比较,才能确定自己的位置 。在 冒泡排序 之类的排序中,问题规模为n,又因为需要比较n次,所以平均时间复杂度为O(n²)。在 归并排序、快速排序 之类的排序中,问题规模通过 分治法 消减为logN次,所以时间复杂度平均 O(nlogn) 。比较排序的优势是