×

shifenzheng 排序

SQL语句,按记录重复的数量排序降序?数组排序,从最小到最大使用java问题,怎么解决

admin admin 发表于2022-07-11 13:56:54 浏览105 评论0

抢沙发发表评论

SQL语句,按记录重复的数量排序降序


SELECT T.[Name]
,T.[CardNo]
,T.[Descriot]
,T.[CtfTp]
,T.[CtfId]
,T.[Gender]
,T.[Birthday]
,T.[Address]
,T.[Zip]
,T.[Dirty]
,T.[District1]
,T.[District2]
,T.[District3]
,T.[District4]
,T.[District5]
,T.[District6]
,T.[FirstNm]
,T.[LastNm]
,T.[Duty]
,T.[Mobile]
,T.[Tel]
,T.[Fax]
,T.[EMail]
,T.[Nation]
,T.[Taste]
,T.[Education]
,T.[Company]
,T.[CTel]
,T.[CAddress]
,T.[CZip]
,T.[Family]
,T.[Version]
,T.[id]
FROM (
SELECT
row_number() over(partition by [CtfId] order by [CardNo] )as N,
count([CardNo]) over(partition by [CtfId])as C,
[Name]
,[CardNo]
,[Descriot]
,[CtfTp]
,[CtfId]
,[Gender]
,[Birthday]
,[Address]
,[Zip]
,[Dirty]
,[District1]
,[District2]
,[District3]
,[District4]
,[District5]
,[District6]
,[FirstNm]
,[LastNm]
,[Duty]
,[Mobile]
,[Tel]
,[Fax]
,[EMail]
,[Nation]
,[Taste]
,[Education]
,[Company]
,[CTel]
,[CAddress]
,[CZip]
,[Family]
,[Version]
,[id]
FROM [shifenzheng].[dbo].[cdsgus]
where CtfId like ’%3101%’ and Gender like ’f’
) T ORDER BY T.C DESC,T.N ASC

数组排序,从最小到最大使用java问题,怎么解决


数组排序.常见的算法有冒泡排序, 也可以使用调用数组工具类,进行排序

具体的代码如下

import java.util.Arrays;

public class ArrayDemo {


public static void main(String args) {
int ary = {8,3,5,2,9,1};//数组

//冒泡排序
for (int i = 0; i 《 ary.length-1; i++) {
for (int j = 0; j 《 ary.length-1-i; j++) {
if(ary[j]》ary[j+1]) {
int temp = ary[j];
ary[j] = ary[j+1];
ary[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(ary));//打印数组


int ary2 = {9,2,0,10,12,8};
Arrays.sort(ary2);// 调用数组工具类,进行排序
System.out.println(Arrays.toString(ary2));//打印数组

}
}

测试输出

[1, 2, 3, 5, 8, 9]
[0, 2, 8, 9, 10, 12]

归并排序算法是什么


归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。-shifenzheng

归并操作的工作原理如下:

第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列。

第二步:设定两个指针,最初位置分别为两个已经排序序列的起始位置。

第三步:比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置。

重复步骤3直到某一指针超出序列尾。

将另一序列剩下的所有元素直接复制到合并序列尾。