list排序

ElementUI Table:@sort-change=“sortChange” 方法不生效,已执行但未改变列表

匿名 (未验证) 提交于 2019-12-03 00:15:02
sort-change当表格的排序条件发生变化的时候会触发该事件: 调试发现方法已执行,但是最终排序未生效到表格。因为表格排序只执行一次,需要禁掉默认排序。 <el-table class="table" ref="table" :data="list" :default-sort="{prop: 'SlideNo', order:'ascending'}" @sort-change="sortChange" > </el-table> 自定义排序 : sortChange(column, prop, order) { //需要先清除默认排序 !!! if (this.$refs.table) this.$refs.table.clearSort() // sort... } ~~~ 测试通过,已按自定义排序 ~~~ 来源:博客园 作者: xxxidaizy 链接:https://www.cnblogs.com/zq-kjy/p/11683635.html

HashMap的排序方法

匿名 (未验证) 提交于 2019-12-03 00:08:02
因为Map中LinkedhashMap是有序的,所以将HashMap转化为LinkedHashMap可以实现排序 public Static Map<String,String> sortHashMap(Map<String,String> map){ Map<String,String> sortedMap = new LinkedHashMap<String,String>(); List<String> list = new ArrayList<String>(); Iterator<String> item = map.keySet.iterator(); while(item.hasNext()){ list.add(item.next()); } Collections.sort(list); Iterator<String> item2 = list.iterator(); while(item2.hasNext()){ String key = item2.next(); sortedMap.put(key,map.get(key)); } return sortedMap; } map.keySet 此方法获得到的是HashMap的key值的Set集合 大致步骤 : 1.创建一个 LinkedHashMap<String,String> 集合

泛型排序 (VB.NET)

匿名 (未验证) 提交于 2019-12-03 00:08:02
泛型排序 (VB.NET) Module _4_Generic_Demo Sub Main() Dim list As New List(Of Person) list.AddRange(New Person() {New Person("Ken", 36), New Person("Allen", 56), New Person("Mary", 28)}) Print2(list) list.Sort() Print2(list) list.Sort(New NameComparer) Print2(list) End Sub Sub Print(ByVal list As List(Of Integer)) For Each i As Integer In list Console.WriteLine(i) Next Console.WriteLine("--------------------------------------------------") End Sub Sub Print2(ByVal list As List(Of Person)) For Each i As Person In list Console.WriteLine(i.Name & " : " & i.Age) Next Console.WriteLine("-----------------

排序算法总结

匿名 (未验证) 提交于 2019-12-02 23:55:01
#include <iostream> #include <list> #include <sstream> #include <map> #include <set> #include <queue> #include <map> #include <functional> #include <algorithm> #include <stack> #include <ctime> using namespace std; //冒泡排序(n2) //相邻元素交换,未交换结束,每次减1 void buble_sort(int a[], int n) { bool flag; do { flag = false; for (int j = 1; j < n; j++) { if (a[j - 1]>a[j]) { swap(a[j], a[j - 1]); flag = true; } } n--; } while (flag); } //插入排序,有序序列和无序序列,o(n*2),稳定 //从1开始依次和前面的有序序列相比,找到合适的插入位置插入 void insert_sort(int a[], int n) { int t,i,j; for (i = 1; i < n;i++) { t = a[i];//要插入的位置 for (j = i; j>0&&a[j-1]>t;j--)

数组排序带索引

匿名 (未验证) 提交于 2019-12-02 23:55:01
想到了两种方法来实现,分别利用了List.Sort()和Dictionary.OrderBy()方法,代码如下: 1    int [] arrInt = new int [] { 11 , 38 , 12 , 9 , 234 , 24 , 441 , 24 , 45 , 35 }; 2 3 //List.Sort() 4 List <int> lstOrg = new List <int> (), lstSort = new List <int> (); 5 lstOrg . AddRange ( arrInt ); 6 lstSort . AddRange ( arrInt ); 7 lstSort . Sort (); 8 9 List <int> lstIndex = new List <int> (); 10 for ( int i = 0 ; i < lstSort . Count ; i ++) 11 { 12 int index = lstOrg . IndexOf ( lstSort [ i ]); 13 while ( lstIndex . IndexOf ( index ) >= 0 ) 14 { 15 index = lstOrg . IndexOf ( lstSort [ i ], index + 1 ); 16 } 17 lstIndex . Add (

排序算法----希尔排序

匿名 (未验证) 提交于 2019-12-02 23:55:01
希尔排序   希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本,该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量(gap)”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率比直接插入排序有较大提高。         1 """ 2 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 3 """ 4 5 6 # 方式一:元素采取直接插入排序从前往后比较 7 def shell_sort(int_list): 8 length = len(int_list) 9 if length <= 1: return int_list 10 step = length // 2 11 12 while step > 0: 13 for i in range(step, length, step): 14 item = int_list[i] 15 for j in range(0, i, step): 16 if int_list[j] > item: 17 for

排序算法----快速排序

匿名 (未验证) 提交于 2019-12-02 23:55:01
快速排序 将列表中第一个元素设定为基准数字,赋值给mid变量,然后将整个列表中比基准小的数值放在基准的左侧,比基准到的数字放在基准右侧。然后将基准数字左右两侧的序列在根据此方法进行排放。 定义两个指针,low指向最左侧,high指向最右侧 然后对最右侧指针进行向左移动,移动法则是,如果指针指向的数值比基准小,则将指针指向的数字移动到基准数字原始的位置,否则继续移动指针。 如果最右侧指针指向的数值移动到基准位置时,开始移动最左侧指针,将其向右移动,如果该指针指向的数值大于基准则将该数值移动到最右侧指针指向的位置,然后停止移动。 如果左右侧指针重复则,将基准放入左右指针重复的位置,则基准左侧为比其小的数值,右侧为比其大的数值。    1 #方式一:此方法理解简单,但是系统资源占用过大 2 def quick_sort(int_list): 3 if len(int_list) <= 1: return int_list 4 # divide = int_list.pop() 5 divide=int_list[-1] 6 greater_list, lesser_list = [], [] 7 for element in int_list[:-1]: 8 greater_list.append(element) if divide < element else lesser_list

leetcode-905 按奇偶数排序

匿名 (未验证) 提交于 2019-12-02 23:52:01
题目描述: 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 解法一:头尾指针,向中间走 class Solution: def sortArrayByParity(self, A: List[int]) -> List[int]: if not A: return i,j = 0,len(A)-1 while i<=j: while i<len(A) and A[i]%2 == 0 : i += 1 while j>=0 and A[j]%2 == 1 : j -= 1 if i>=len(A) or j<0 or i>j: break A[i],A[j] = A[j], A[i] i += 1 j -= 1 return A 解法二: class Solution: def sortArrayByParity(self, A: List[int]) -> List[int]: return sorted(A, key = lambda x : x % 2)

leetcode-922 按奇偶排序数组 II

匿名 (未验证) 提交于 2019-12-02 23:52:01
题目描述: 给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 解法一: class Solution : def sortArrayByParityII ( self , A : List [ int ]) -> List [ int ]: i , j = 0 , 0 n = len ( A ) indx = 0 while i < n and j < n : while j < n and A [ j ]% 2 == 1 : j += 1 while i < n and A [ i ]% 2 == 0 : i += 1 if indx % 2 == 0 : A [ indx ], A [ j ] = A [ j ], A [ indx ] indx += 1 j += 1 else : A [ indx ], A [ i ] = A [ i ], A [ indx ] indx += 1 i += 1 return A 转载请标明出处: leetcode-922 按奇偶排序数组 II 文章来源: leetcode-922 按奇偶排序数组 II

LeetCode算法题:34. 在排序数组中查找元素的第一个和最后一个位置

匿名 (未验证) 提交于 2019-12-02 23:52:01
题目描述如下: 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 输入: nums = [5,7,7,8,8,10], target = 6 输出: [-1,-1] 贴代码: C++:(常规的暴力法,易于理解) class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> result; int i=0; for(int i=0;i<nums.size();i++){ if(nums[i]==target&&result.size()==2){ result.pop_back(); result.push_back(i); } else if(nums[i]==target){ result.push_back(i); } } if(result.size()==1){ result.push_back(result[0]); } if(result.empty()==true){ result.push_back(-1); result.push_back(-1); } return