查询时间段内各个城市每天订单量,并按照城市、日期倒序排序

SELECTDATE_FORMAT(start_time,'%Y-%m-%d')ASdays,count(*),city_idAScity_idFROMordersWHEREstart_timeBETWEEN'2018-11-01'AND'2018-11-10'GROUPBYdays,city_idORDERBYdaysDESC,city_idDESC因为日期是datetime类型的字段,要精确到每一天,也就是只需要Y-m-d就行了。所以,就需要使用mysql的date_format函数将日期转换下,并根据其进行分组查询。另外排序的语法也要注意了,多个字段排序是要字段间使用‘,’间隔,否则无效或者报错。 ...

List元素排序简例

前言:这种处理方式,在程序中偶尔会用的到,栗子很简单,关键是加强一下记忆,以及以备后用1:实现Comparable接口的方式1-1:没有使用泛型,重写compareTo()方法时需要判断类型及转换publicclassRegionimplementsComparable{/***区域ID*/privateIntegerid;/***区域名称*/privateStringname;publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}/***方便打印对象信息,重写toString()方法*@return*/@OverridepublicStringtoString(){finalStringBuffersb=newStringBuffer("{"Region":{");sb.append(""id":"").append(id).append("...
代码星球 代码星球·2021-02-17

TreeMap 排序

https://www.cnblogs.com/chenmo-xpw/p/4922641.html...
代码星球 代码星球·2021-02-17

【软考】——排序算法

    所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。排序包括两大类:内部排序和外部排序内部排序:待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列,即元素个数少的排序中外部排序:指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的【是什么】:是一种简单的排序方法,基本思想是依次将记录插入到一个已排好序的有序表中,从而得到一个新的、记录数增加1的有序表例子:图书馆整理图书【怎么用】 【In aword】将需要排序的数依次和已有表中的数据进行比较,按照从小到大的顺序插入到已有的表中【是什么】 第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R[1]~R[n-1]中选取最小值,与R[1]交换,....,第i次从R[i-1]~R[n-1]中选取最小...
代码星球 代码星球·2021-02-17

基本排序算法程序实现

简单算法O(n^2):冒泡法<简单选择排序<直接插入排序(性能比较)改进算法:希尔排序、堆排序、归并排序、快速排序 数组交换语句swap()1voidswap(int*sortList,intintA,intintB)2{3inta=sortList[intA];4sortList[intA]=sortList[intB];5sortList[intB]=a;6} 冒泡法(改进)voidBubbleSort(int*sortList,intlen){boolisOrder=false;//哨兵for(inti=0;(i<len-1)&&!isOrder;i++){isOrder=true;for(intj=len-1;j>=i;j--){if(sortList[j]<sortList[j-1]){swap(sortList,j,j-1);isOrder=false;}}}} 简单选择排序voidSimpleSort(int*sortList,intlen){intminIndex;for(inti=0;i<...

LeetCode(83): 删除排序链表中的重复元素

Easy!题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入:1->1->2输出:1->2示例 2:输入:1->1->2->3->3输出:1->2->3解题思路:移除有序链表中的重复项需要定义个指针指向该链表的第一个元素,然后第一个元素和第二个元素比较,如果重复了,则删掉第二个元素,如果不重复,指针指向第二个元素。这样遍历完整个链表,则剩下的元素没有重复项。C++解法一:1/**2*Definitionforsingly-linkedlist.3*structListNode{4*intval;5*ListNode*next;6*ListNode(intx):val(x),next(NULL){}7*};8*/9classSolution{10public:11ListNode*deleteDuplicates(ListNode*head){12if(!head||!head->next)returnhead;1314ListNode*start=head;15while...

LeetCode(82):删除排序链表中的重复元素 II

Medium!题目描述:给定一个排序链表删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入:1->2->3->3->4->4->5输出:1->2->5示例 2:输入:1->1->1->2->3输出:2->3解题思路:和之前那道(http://www.cnblogs.com/grandyang/p/4066453.html)不同的地方是这里要删掉所有的重复项,由于链表开头可能会有重复项,被删掉的话头指针会改变,而最终却还需要返回链表的头指针。所以需要定义一个新的节点,然后链上原链表,然后定义一个前驱指针和一个现指针,每当前驱指针指向新建的节点,现指针从下一个位置开始往下遍历,遇到相同的则继续往下,直到遇到不同项时,把前驱指针的next指向下面那个不同的元素。如果现指针遍历的第一个元素就不相同,则把前驱指针向下移一位。C++解法一:1/**2*Definitionforsingly-linkedlist.3*structListNode{4...

LeetCode(81): 搜索旋转排序数组 II

Medium!题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。(例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。示例 1:输入:nums=[2,5,6,0,0,1,2],target=0输出:true示例 2:输入:nums=[2,5,6,0,0,1,2],target=3输出:false进阶:这是 搜索旋转排序数组 的延伸题目,本题中的 nums 可能包含重复元素。这会影响到程序的时间复杂度吗?会有怎样的影响,为什么?解题思路:这道是之前那道 SearchinRotatedSortedArray在旋转有序数组中搜索 的延伸,现在数组中允许出现重复数字,这个也会影响我们选择哪半边继续搜索,由于之前那道题不存在相同值,我们在比较中间值和最右值时就完全符合之前所说的规律:如果中间的数小于最右边的数,则右半...

LeetCode(80):删除排序数组中的重复项 II

Medium!题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。示例 1:给定nums=[1,1,1,2,2,3],函数应返回新长度length=5,并且原数组的前五个元素被修改为1,1,2,2,3。你不需要考虑数组中超出新长度后面的元素。示例 2:给定nums=[0,0,1,1,1,1,2,3,3],函数应返回新长度length=7,并且原数组的前五个元素被修改为 0,0,1,1,2,3,3。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下://nums是以“引用”方式传递的。也就是说,不对实参做任何拷贝intlen=removeDuplicates(nums);//在函数里修改输入数组对于调用者是可见的。//根据你的函数返回的长度,它会打印出数组中该长度范围内...

LeetCode(33):搜索旋转排序数组

Medium!题目描述:假设按照升序排序数组在预先未知的某个点上进行了旋转。(例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n)级别。示例1:输入:nums=[4,5,6,7,0,1,2],target=0输出:4示例 2:输入:nums=[4,5,6,7,0,1,2],target=3输出:-1解题思路:这道题让在旋转数组中搜索一个给定值,若存在返回坐标,若不存在返回-1。我们还是考虑二分搜索法,但是这道题的难点在于我们不知道原数组在哪旋转了,我们还是用题目中给的例子来分析,对于数组[0124567]共有下列七种旋转方法:0  1  2   4  5  6  77  0  1   2  4  5  66  7  0   1  2  4  55  6  7   ...

LeetCode(26): 删除排序数组中的重复项

Easy!题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。示例 1:给定数组nums=[1,1,2],函数应该返回新的长度2,并且原数组nums的前两个元素被修改为1,2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定nums=[0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度5,并且原数组nums的前五个元素被修改为0,1,2,3,4。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下://nums是以“引用”方式传递的。也就是说,不对实参做任何拷贝intlen=removeDuplicates(nums);//在函数里修改输入数组对于调用者是可见的。//根据你的函数返回的长度,它会打印出数组中该长度范围内的所有元素。for(inti=0;i<l...

LeetCode(23):合并K个排序链表

Hard!题目描述:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出:1->1->2->3->4->4->5->6解题思路:这道题让我们合并k个有序链表,之前我们做过一道MergeTwoSortedLists混合插入有序链表,是混合插入两个有序链表。这道题增加了难度,变成合并k个有序链表了,但是不管合并几个,基本还是要两两合并。那么我们首先考虑的方法是能不能利用之前那道题的解法来解答此题。答案是肯定的,但是需要修改,怎么修改呢,最先想到的就是两两合并,就是前两个先合并,合并好了再跟第三个,然后第四个直到第k个。这样的思路是对的,但是效率不高,没法通过OJ,所以我们只能换一种思路。这里就需要用到分治法 DivideandConquerApproach。简单来说就是不停的对半划分,比如k个链表先划分为合并两个k/2个链表的任务,再不停的往下划分,直到划分成只有一个或两个链表...

LeetCode(4):两个排序数组的中位数

Hard!题目描述:有两个大小为m和n的排序数组 nums1 和 nums2 。请找出两个排序数组的中位数并且总的运行时间复杂度为 O(log(m+n))。示例1:nums1=[1,3]nums2=[2]中位数是2.0示例2:nums1=[1,2]nums2=[3,4]中位数是(2+3)/2=2.5解题思路:这道题让我们求两个有序数组的中位数,而且限制了时间复杂度为O(log(m+n)),看到这个时间复杂度,自然而然的想到了应该使用二分查找法来求解。但是这道题被定义为Hard也是有其原因的,难就难在要在两个未合并的有序数组之间使用二分法,这里我们需要定义一个函数来找到第K个元素,由于两个数组长度之和的奇偶不确定,因此需要分情况来讨论,对于奇数的情况,直接找到最中间的数即可,偶数的话需要求最中间两个数的平均值。下面重点来看如何实现找到第K个元素,首先我们需要让数组1的长度小于或等于数组2的长度,那么我们只需判断如果数组1的长度大于数组2的长度的话,交换两个数组即可,然后我们要判断小的数组是否为空,为空的话,直接在另一个数组找第K个即可。还...

C# 实现list=list.OrderBy(q=>q.字段名).ToList(); 按多个字段排序

 //倒序list.OrderByDescending(i=>i.a).ThenByDescending(i=>i.b);//顺序list.OrderBy(i=>i.a).ThenBy(i=>i.b);...

C#对DataTable里数据筛选排序的方法

在日常开发过程中,有一个DataTable集合,里面有很多字段,现在要求针对某一列进行排序,如果该列为数字的话,进行ASC即可实现,但是该字段类型为string,此时排序就有点不正确了 protectedvoidPage_Load(objectsender,EventArgse){DataTabledt=newDataTable();dt.Columns.Add("Name");dt.Columns.Add("Age");//因为是字符串,所以排序不对dt.Rows.Add("小明","21");dt.Rows.Add("小张","10");dt.Rows.Add("小红","9");dt.Rows.Add("小伟","7");dt.Rows.Add("小美","3");dt.DefaultView.Sort="AgeASC";dt=dt.DefaultView.ToTable();foreach(DataRowsindt.Rows){Response.Write(s["Age"].ToString()+"--"+s["Name"].ToString()+"<br/&g...
首页上一页...7891011...下一页尾页