sort

c语言中qsort函数的使用、编程中的一些错误

寵の児 提交于 2019-12-04 11:14:07
qsort()函数: 功能:相当于c++sort,具有快排的功能,复杂度的话nlog(n) 注:C中的qsort()采用的是快排算法,C++的sort()则是改进的快排算法。两者的时间复杂度都是nlogn,但是实际应用中,sort()一般要快些,建议使用sort()。 头文件:stdlib.h 用法: void qsort(void* base,size_t_num,size_t_width,int(__cdecl*compare)(const void*,const void*));   参数:1、待排序数组,排序之后的结果仍放在这个数组中      2、数组中待排序元素数量      3、各元素的占用空间大小(单位为字节)    4、指向函数的指针,用于确定排序的顺序(需要用户自定义一个比较函数) 1、对int类型进行排序: 代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 int num[100]; 4 int cmp_int(const void* aa,const void* bb) 5 { 6 int* a=(int*)aa; 7 int* b=(int*)bb; 8 return *a-*b; 9 } 10 int main() 11 { 12 int i; 13 num[1]=3; 14 num[2]=2; 15 num

mysql 5.6配置

﹥>﹥吖頭↗ 提交于 2019-12-04 11:06:32
简洁版: [client] port = 3306 socket = /weyeedata/mysql/run/mysql.sock [mysqld] innodb_buffer_pool_size = 512M #log_bin = 1 expire_logs_days = 7 basedir = /usr/local/mysql datadir = /weyeedata/mysql/data port = 3306 bind = 0.0.0.0 server_id = 1 socket = /weyeedata/mysql/run/mysql.sock innodb_file_per_table = 1 skip_name_resolve = 1 #binlog_format = row log_error = /weyeedata/mysql/logs/mysql-error.log slow_query_log = 1 long_query_time = 1 slow_query_log_file = /weyeedata/mysql/logs/mysql-slow.log join_buffer_size = 128M sort_buffer_size = 2M read_rnd_buffer_size = 2M max_connections = 10000 sql

3

女生的网名这么多〃 提交于 2019-12-04 09:45:48
Linux-day03 显示/etc/services文件的第11行到第20行的内容 [root@qls ~]# head -20 /etc/services | tail [root@qls ~]# grep -n '.' /etc/services | grep -A 9 '^11:' 文件查找命令 locate #根据本地数据库进行查找 yum install mlocate -y #下载软件包 [root@qls ~]# updatedb #需要更新数据库 [root@qls ~]# locate -r hostname$ #支持正则,需加-r选项 /etc/hostname /etc/selinux/targeted/active/modules/100/hostname /usr/bin/hostname /usr/bin/nmtui-hostname /usr/lib64/gettext/hostname which #查找命令的绝对路径 [root@qls ~]# which hostname /usr/bin/hostname whereis #查找文件 [root@qls ~]# whereis hostname hostname: /usr/bin/hostname /etc/hostname /usr/share/man/man1/hostname.1.gz

A1067 Sort with Swap(0, i) (25 分)

a 夏天 提交于 2019-12-04 09:09:39
一、技术总结 题目要求是,只能使用0,进行交换位置,然后达到按序排列,所使用的最少交换次数 输入时,用数组记录好每个数字所在的位置。 然后使用for循环,查看i当前位置是否为该数字,核心是等待0回到自己的位置上,如果没有一直与其他的数字进行交换。如果这个过程中,i回到自己位置上就不用调换,如果不是那么直接与0位置进行调换,直到所有位置都到指定位置上面。 二、参考代码 #include<iostream> #include<algorithm> using namespace std; int main(){ int n, ans = 0, a[100010], t; cin >> n; for(int i = 0; i < n; i++){ cin >> t; a[t] = i; } for(int i = 1; i < n; i++){ if(i != a[i]){ while(a[0] != 0){ swap(a[0], a[a[0]]); ans++; } if(i != a[i]){ swap(a[0], a[i]); ans++; } } } cout << ans; return 0; } 来源: https://www.cnblogs.com/tsruixi/p/11851792.html

[转帖]linux Shell sort按照指定列排序

纵然是瞬间 提交于 2019-12-04 07:49:19
linux Shell sort按照指定列排序 https://blog.csdn.net/weixin_38308151/article/details/80760133 kubectl get pods |sort -k 5n 置顶 2018-06-21 14:35:37 马小新 阅读数 18025 更多 分类专栏: linux shell 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_38308151/article/details/80760133 文本如下: 110,1|1,10 110,1|2,101 110,3|1,103 110,4|1,16 110,5|1,12 112,1|1,10 112,1|2,101 112,2|1,103 110,6|1,11 104,2|1,34 112,3|1,103 112,4|1,16 112,6|1,11 113,1|1,30 110,2|1,103 112,5|1,12 sort -t”,” -k 1n,1 -k 3rn,3 file.txt 排序结果: [root@lzpm 0621]# sort -t “,” -k 1n,1 -k 3rn,3 file.txt 104,2|1,34 110,2

奶牛抗议 DP 树状数组

老子叫甜甜 提交于 2019-12-04 06:53:28
奶牛抗议 DP 树状数组 USACO的题太猛了 容易想到 \(DP\) ,设 \(f[i]\) 表示为在第 \(i\) 位时方案数,转移方程: \[ f[i]=\sum f[j]\;(j< i,sum[i]-sum[j]\ge0) \] \(O(n^2)\) 过不了,考虑优化 移项得: \[ f[i]=\sum f[j]\;(j< i,sum[i]\ge sum[j]) \] 这时候我们发现相当于求在 \(i\) 前面并且前缀和小于 \(sum[i]\) 的所有和,这就可以用一个树状数组优化了,在树状数组维护下标为 \(sum[i]\) , \(f[i]\) 的前缀和。对于每个 \(f[i]\) 即为树状数组上 \(sum[i]\) 的前缀和。 这里需要注意的是前缀和可能为负,而树状数组下标不能为负,所以我们要离散化一下。 #include <cstdio> #include <algorithm> using namespace std; #define MAXN 100010 #define lowbit(x) ((x)&(-(x))) #define MOD 1000000009 int n,sum[MAXN],s; int sum_sort[MAXN+1]; int tre[MAXN+1]; inline void add(int x, int val){ while(x<

MaxCompute Hash Clustering介绍

喜欢而已 提交于 2019-12-04 06:45:40
摘要: Hash Clustering通过允许用户在建表时设置表的Shuffle和Sort属性,进而MaxCompute根据数据已有的存储特性,优化执行计划,提高效率,节省资源消耗。 对于Hash Clustering整体带来的性能收益,我们通过标准的TPC-H测试集进行衡量。 背景 在MaxCompute查询中,Join是很常见的场景。例如以下Query,就是一个简单的Inner Join把t1表和t2表通过id连接起来: SELECT t1.a, t2.b FROM t1 JOIN t2 ON t1.id = t2.id; Join在MaxCompute内部主要有三种实现方法: Broadcast Hash Join - 当Join存在一个很小的表时,我们会采用这种方式,即把小表广播传递到所有的Join Task Instance上面,然后直接和大表做Hash Join。 Shuffle Hash Join - 如果Join表比较大,我们就不能直接广播了。这时候,我么可以把两个表按照Join Key做Hash Shuffle,由于相同的键值Hash结果也是一样的,这就保证了相同的Key的记录会收集到同一个Join Task Instance上面。然后,每个Instance对数据量小的一路建Hash表,数据量大的顺序读取Join。 Sort Merge Join -

学习Spring-Data-Jpa(六)---05、spring-data-commons中的repository

大城市里の小女人 提交于 2019-12-04 04:32:37
1、spring-data-commons项目   spring-data-commons项目是所有spring-data项目的核心,我们来看一下该项目下的repository包中的接口和注解。      2、Repository接口和@RepositoryDefinition注解   当中最重要的就是Repository接口了。它是做数据库操作的最底层的抽象接口、最顶级的父类,打开Repository接口看其源码,发现里面其实什么方法都没有,仅仅起到一个标识作用。捕获要管理的域类型和域类的id类型。用途是保存类型信息,并能够在类路径扫描期间发现继承该接口的接口,帮助我们创建代理类。 @Indexed public interface Repository<T, ID> { }   @Indexed 我们发现在Repository接口上有一个@Indexed 注解,是Spring5提供的注解,用于提升应用启动性能。这个注解单独存在不起作用,要想使其生效的话,要添加spring-context-indexer依赖。在编译时会将@CompoentScan扫描指定package中要生成的bean写在METE-INF/spring.components文件中,当项目启动时,就会读取这个文件,不会再扫描指定的package了,从而提升性能。   我们只要继承Repository接口

[LeetCode] 148. Sort List

白昼怎懂夜的黑 提交于 2019-12-04 03:09:58
给链表排序。题意是给一个链表,请对其排序,并满足时间O(nlogn),空间O(1)的要求。 按照题目要求,因为时间是nlogn,所以自然而然想到偏向二分的做法,但是我是真做不到空间O(1),我只会用递归的方法,空间是O(n)。思路是找到链表的中点,然后用merge sort的思路递归再把链表一点点拼凑回去。 时间O(nlogn) 空间O(n) 1 /** 2 * @param {ListNode} head 3 * @return {ListNode} 4 */ 5 var sortList = function(head) { 6 // corner case 7 if (head === null || head.next === null) { 8 return head; 9 } 10 let middle = findMiddle(head); 11 let next = middle.next; 12 middle.next = null; 13 return merge(sortList(head), sortList(next)); 14 }; 15 16 var findMiddle = function(head) { 17 let slow = head; 18 let fast = head; 19 while (fast.next !== null &&

paixu

[亡魂溺海] 提交于 2019-12-03 23:20:44
排序 冒泡排序 1.将原始列表中的最大值找出且放置在列表最右侧(将元素两两比较,将数值大的数逐步向后移动) 2.重复执行步骤1 #将原始列表中的最大值找出且放置在列表最右侧(将元素两两比较,将数值大的数逐步向后移动) def sort(alist): for i in range(len(alist)-1): if alist[i] > alist[i+1]: alist[i],alist[i+1] = alist[i+1],alist[i] return alist def sort(alist): for j in range(len(alist)-1): #交换 for i in range(len(alist)-1-j): if alist[i] > alist[i+1]: alist[i],alist[i+1] = alist[i+1],alist[i] return alist 选择排序 1.将列表中的最大值一次找出,放置在列表最右侧 #将列表中的最大值的下标找到 def sort(alist): max_index = 0 #最大值的下标 for i in range(1,len(alist)): if alist[max_index] < alist[i]: max_index = i print(max_index) #将列表中的最大值一次找出,放置在列表最右侧