精华内容
下载资源
问答
  • 经常,开发人员发现在PHP中使用这种数据结构值或者数组...简单排序首先,让我们来看看最简单情况:将个数组元素从低到高进行简单排序,这个函数既可以按数字大小排列也可以按字母顺序排列。PHPsort()函数实...

    经常,开发人员发现在PHP中使用这种数据结构对值或者数组元素进行排序非常有用。PHP提供了一些适合多种数组的排序函数,这些函数允许你在数组内部对元素进行排列,也允许用很多不同的方法对它们进行重新排序。在这篇文章中我们将讨论该排序中最重要的几个函数。

    简单排序

    首先,让我们来看看最简单的情况:将一个数组元素从低到高进行简单排序,这个函数既可以按数字大小排列也可以按字母顺序排列。PHP的sort()函数实现了这个功能,如Listing A所示:

    Listing A

    $data = array(5,8,1,7,2);

    sort($data);

    print_r($data);

    ?>

    输出结果如下所示:

    Array ([0] => 1

    [1] => 2

    [2] => 5

    [3] => 7

    [4] => 8

    )

    也能使用rsort()函数进行排序,它的结果与前面所使用的sort()简单排序结果相反。Rsort()函数对数组元素进行从高到低的倒排,同样可以按数字大小排列也可以按字母顺序排列。Listing B给我们展示了它的一个例子:

    Listing B

    ?>

    它的输出结果如下:

    Array ([0] => 8

    [1] => 7

    [2] => 5

    [3] => 2

    [4] => 1

    )

    根据关键字排序

    当我们使用数组的时候,经常根据关键字对数组重新排序,从高到低。Ksort()函数就是根据关键字进行排序的函数,同时,它在排序的过程中会保持关键字的相关性。Listing C就是一个例子:

    Listing C

    <?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);ksort($data); print_r($data);

    ?>

    它的输出结果如下:

    Array ([DE] => Germany

    [ES] => Spain

    [IN] => India

    [US] => United States

    )

    Krsort()函数是根据关键字对数组进行倒排,Listing D就是这样的例子:

    Listing D

    <?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);krsort($data); print_r($data);

    ?>

    它的输出结果如下:

    Array ([US] => United States

    [IN] => India

    [ES] => Spain

    [DE] => Germany

    )

    根据值排序

    如果你想使用值排序来取代关键字排序的话,PHP也能满足你的要求。你只要使用asort()函数来代替先前提到的ksort()函数就可以了。如Listing E所示:

    Listing E

    <?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);asort($data); print_r($data);

    ?>

    下面就是它的输出结果。请注意这个结果与上面使用ksort()函数所得到的结果的不同——在这两种情况中,都是按字母顺序进行排序的,但是它们是根据数组的不同字段进行排序的。

    同时,请注意关键字-值之间的联系会始终保持;它只是关键字-值对排序后的一种方式,排序并不会改变它们的对应关系。

    Array ([DE] => Germany

    [IN] => India

    [ES] => Spain

    [US] => United States

    )

    现在,你肯定能猜到这种排序也可以进行倒排,它使用arsort()函数完成这个功能。Listing F就是一个例子:

    Listing F

    <?php $data = array(“US” => “United States”, “IN” => “India”, “DE” => “Germany”, “ES” => “Spain”);arsort($data); print_r($data);

    ?>

    下面是它的输出结果,根据值按字母表顺序进行倒排。将下面的结果与用krsort()函数进行倒排后生成的结果进行比较,就能很容易明白两者的不同了。

    Array ([US] => United States

    [ES] => Spain

    [IN] => India

    [DE] => Germany

    )

    自然语言排序

    PHP有一个非常独特的排序方式,这种方式使用认知而不是使用计算规则。这种特性称为自然语言排序,当创建模糊逻辑应用软件的时候这种排序方式非常有用。下面大家可以来看看它的一个简单例子,如Listing G所示:

    Listing G

    natsort($data); print_r($data);?>

    它的输出结果如下:

    Array ([0] => book-1

    [1] => book-10

    [2] => book-100

    [3] => book-5

    )

    Array

    (

    [0] => book-1

    [3] => book-5

    [1] => book-10

    [2] => book-100

    )

    它们的不同已经很清楚了:第二个排序结果更直观,更“人性化”,然而第一个则更符合算法规则,更具“计算机”特点。

    自然语言能进行倒排吗?答案是肯定的!只要对natsort()的结果使用array_reverse()函数就可以了,Listing H就是一个简单例子:

    Listing H

    ?>

    下面是它的输出结果:

    Array ([0] => book-100

    [1] => book-10

    [2] => book-5

    [3] => book-1

    )

    根据用户自定义的规则排序

    PHP也能让你定义自己的排序算法,你可以通过创建你自己的比较函数,并把它传递给usort()函数。如果第一个参数比第二个参数“小”的话,比较函数必须返回一个比0小的数,如果第一参数比第二个参数“大”的话,比较函数应该返回一个比0大的数。

    Listing I就是这样的一个例子,在这个例子中根据它们的长度对数组元素进行排序,最短的项放在最前面:

    Listing I

    print_r($data); function sortByLen($a, $b) {

    if (strlen($a) == strlen($b)) {

    return 0;

    } else {

    return (strlen($a) > strlen($b)) ? 1 : -1;

    }

    }

    ?>

    这样,就创建了我们自己的比较函数,这个函数使用strlen()函数比较每一个字符串的个数,然后分别返回1,0或-1.这个返回值是决定元素排列的基础。下面是它的输出结果:

    Array ([0] => jay@zoo.tw

    [1] => joe@host.com

    [2] => john.doe@gh.co.uk

    [3] => asmithsonian@us.info

    )

    自然语言排序

    PHP有一个非常独特的排序方式,这种方式使用认知而不是使用计算规则。这种特性称为自然语言排序,当创建模糊逻辑应用软件的时候这种排序方式非常有用。下面大家可以来看看它的一个简单例子,如Listing G所示:

    Listing G

    natsort($data); print_r($data);?>

    它的输出结果如下:

    Array ([0] => book-1

    [1] => book-10

    [2] => book-100

    [3] => book-5

    )

    Array

    (

    [0] => book-1

    [3] => book-5

    [1] => book-10

    [2] => book-100

    )

    它们的不同已经很清楚了:第二个排序结果更直观,更“人性化”,然而第一个则更符合算法规则,更具“计算机”特点。

    自然语言能进行倒排吗?答案是肯定的!只要对natsort()的结果使用array_reverse()函数就可以了,Listing H就是一个简单例子:

    Listing H

    ?>

    下面是它的输出结果:

    Array ([0] => book-100

    [1] => book-10

    [2] => book-5

    [3] => book-1

    )

    根据用户自定义的规则排序

    PHP也能让你定义自己的排序算法,你可以通过创建你自己的比较函数,并把它传递给usort()函数。如果第一个参数比第二个参数“小”的话,比较函数必须返回一个比0小的数,如果第一参数比第二个参数“大”的话,比较函数应该返回一个比0大的数。

    Listing I就是这样的一个例子,在这个例子中根据它们的长度对数组元素进行排序,最短的项放在最前面:

    Listing I

    print_r($data); function sortByLen($a, $b) {

    if (strlen($a) == strlen($b)) {

    return 0;

    } else {

    return (strlen($a) > strlen($b)) ? 1 : -1;

    }

    }

    ?>

    这样,就创建了我们自己的比较函数,这个函数使用strlen()函数比较每一个字符串的个数,然后分别返回1,0或-1.这个返回值是决定元素排列的基础。下面是它的输出结果:

    Array ([0] => jay@zoo.tw

    [1] => joe@host.com

    [2] => john.doe@gh.co.uk

    [3] => asmithsonian@us.info

    )

    多维排序

    最后,PHP也允许在多维数组上执行一些比较复杂的排序——例如,首先对一个嵌套数组使用一个普通的关键字进行排序,然后再根据另一个关键字进行排序。这与使用SQL的ORDER BY语句对多个字段进行排序非常相似。为了能更好的明白它是如何工作的,请仔细看Listing J所举的例子:

    Listing J

    <?php $data = array(array(“id” => 1, “name” => “Boney M”, “rating” => 3),

    array(“id” => 2, “name” => “Take That”, “rating” => 1),

    array(“id” => 3, “name” => “The Killers”, “rating” => 4),

    array(“id” => 4, “name” => “Lusain”, “rating” => 3),

    ); foreach ($data as $key => $value) {

    $name[$key] = $value['name'];

    $rating[$key] = $value['rating'];

    }

    array_multisort($rating, $name, $data); print_r($data);?>

    这里,我们在$data数组中模拟了一个行和列数组。然后,我使用array_multisort()函数对数据集合进行重排,首先是根据rating进行排序,然后,如果rating相等的话,再根据name排序。它的输出结果如下:

    Array ([0] => Array

    (

    [id] => 2

    [name] => Take That

    [rating] => 1

    ) [1] => Array

    (

    [id] => 1

    [name] => Boney M

    [rating] => 3

    )

    [2] => Array

    (

    [id] => 4

    [name] => Lusain

    [rating] => 3

    )

    [3] => Array

    (

    [id] => 3

    [name] => The Killers

    [rating] => 4

    )

    )

    array_multisort()函数是PHP中最有用的函数之一,它有非常广泛的应用范围。另外,就如你在例子中所看到的,它能对多个不相关的数组进行排序,也可以使用其中的一个元素作为下次排序的基础,还可以对数据库结果集进行排序。

    这些例子应该让你对PHP中各种数组排序函数的使用有了初步的了解,也向你展示了一些隐藏在PHP数组处理工具包的内部功能。

    展开全文
  • python 对一组list数据,进行区间划分,按照大小排序并返回索引值:一、对一组纬度数据进行排序:二、将lat数据按照10为区间进行排序并统计每个区间存在个数: 最近在对海洋数据进行处理时,对数据需要进行一些...

    python 对一组list数据,进行区间划分,按照大小排序并返回索引值:


    最近在对海洋数据进行处理时,对数据需要进行一些排序,数据匹配等操作;
    现对我所希望实现的一些函数进行总结:

    一、对一组纬度数据进行排序:

    现有4000多个纬度数据,从第0个至最后一个从-90°~90°随机分布。

    在这里插入图片描述

    想要实现从-90°依次从到小排至90°,既升序排列,同时返回其下标
    这里引用两个函数sorted 、enumerate
    第一个函数:sorted 用法说明如下
    list = sorted(iterable, key=None, reverse=False)
    如果只想实现升序排列,直接进行如下操作即可

    lat_sort=sorted(lat)
    

    得到:
    在这里插入图片描述但是我们想同时返回其在原来列表中的下标,既需要enumerate函数的帮忙
    其使用方法如下:
    enumerate(iterable, start=0)
    Parameters:
    Iterable: any object that supports iteration
    Start: the index value from which the counter is
    to be started, by default it is 0
    我们先对lat数据直接进行使用看看返回了什么:

    a=enumerate[lat]
    

    在这里插入图片描述发现无法查看其具体结果,所以再将其转换为list格式,以便浏览

    a=list(enumerate(lat))
    

    在这里插入图片描述
    很明显,上述操作,将每个原始lat中数据的值及其下标返回了,因此再次进行sorted排序是即可查看它对应的下标啦~

    但是!!!,因为此时list中既有下标、又有数值,在进行排序时是按照下标还是数值呢,所以需要增加一个维度设定,既

    对于sorted(iterable, key=None, reverse=False)中的key进行设定,使其按照所需纬度进行排序。

    这里我需要的是根据数值排序,所以进行如下操作:

        
    a=sorted(list(enumerate(lat)),key=lambda dimension: dimension[1])
    

    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    补充一下:

    lambda 函数是一种小的匿名函数,可接受任意数量的参数,但只能有一个表达式。
    比如:对于想要传入的参数使其加上6,即可设置为:

    x= lambda a : a + 10
    

    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    回到正题
    我们运行上述代码会得到:
    在这里插入图片描述果然!!!不出所料按照我们想要的结果实现啦~

    下面,是提取对应的维度结果,比如我们想要将下标和数值分别放置在一个list中,只要这样即可:

    index = [i[0] for i in a]
    lat_sort = [i[1] for i in a]    
        
    

    在这里插入图片描述
    在这里插入图片描述
    不出所料,是不是很easy呐!
    如果想要按照原始lat中,不同数值按照不同颜色排列,只需将list转为array即可

    lat_sort=np.array(lat_sort)    
    

    在这里插入图片描述

    二、将lat数据按照10为区间进行排序并统计每个区间存在的个数:

    首先整理一下思路,我们要进行排序,然后区间进行分割。
    这里引出一个新的函数:groupby(),其参数属性如下所示:

    DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=, observed=False, dropna=True)
    感兴趣的小伙伴们可以去点击下方中进行仔细浏览:

    groupby参数引用

    总之,我们可以通过groupby,达到分割数据的目的,
    进行如下操作:

        
    lat_sort=[]
    for k, g in groupby(sorted(lat), key=lambda x:x//10):
         #x//10:对x取整除 - 返回商的整数部分
        print('{}-{}:{}'.format(k*10, (k+1)*10-1,len(list(g))))
    
    
    

    在这里插入图片描述
    完美!!!

    		                            一个努力学习python的海洋小白
    		                            水平有限,欢迎指正!!!
    		                            欢迎评论、收藏。
    
    展开全文
  • 简单排序 首先,让我们来看看最简单情况:将个数组元素从低到高进行简单排序,这个函数既可以按数字大小排列也可以按字母顺序排列。PHPsort()函数实现了这个功能,如Listing A所示: Listing A 复制代码 ...
  • UnmapViewOfFile 在当前应用程序内存地址空间解除对一个文件映射对象映射 VerFindFile 用这个函数决定一个文件应安装到哪里 VerInstallFile 用这个函数安装一个文件 VerLanguageName 这个函数能根据16位语言...
  • 结合SA、PGA的优点,PGA中每一代操作内部的基因重组操作进行了改进,同时改变了传统的降温方式及在两代操作之间加入的染色体按适应度函数大小排列的过程。用3城市数据的旅行商问题(TSP)上述5种算法进行了...
  • linux_c API函数大全

    2013-12-02 23:19:10
    setgrent(从头读取组文件中的组数据) 73 7.28 74 setgroups(设置组代码) 74 7.29 74 setpwent(从头读取密码文件中账号数据) 74 7.30 75 setregid(设置真实及有效组识别码) 75 7.31 75 setreuid(设置...
  • 如果有超过两个以上的数据,就选择一个分割点将数据分成两个部分,小于分割点的数据放在一组,其余放在另一组,然后分别两组数据排序。通常分割点的数据是随机选取。这样无论你的数据是否已被排列过,你所分割...
  • 1.1.1 维数组倒置 2 范例1-1 维数组倒置 2 ∷相关函数:fun函数 1.1.2 维数组应用 3 范例1-2 维数组应用 3 1.1.3 维数组高级应用 5 范例1-3 维数组高级应用 5 1.1.4 显示杨辉三角 7 ...
  • [HAOI2006]均分数据

    2021-01-23 23:26:04
    我们先用STL中的函数random_shuffle()用来对一个元素序列进行重新排序(随机的) 众所周知:如果每个数的大小都相近的话,方差就越小 所以我们每次将第i个数加给当前数之和最小的那个,这样操作可以使得在当前...

    [HAOI2006]均分数据
    在这里插入图片描述

    题解:

    题目稍微解释一下:
    把n个数以分为m组,计算每一组的和,求得到的这m个数的方差。由于分法是任意的,我们要求这些方差中的最小值
    我们先用STL中的函数random_shuffle()用来对一个元素序列进行重新排序(随机的)
    众所周知:如果每个组数的大小都相近的话,方差就越小
    所以我们每次将第i个数加给当前数之和最小的那个组,这样操作可以使得在当前排列下,m组数最相近,也就是方差最小
    循环个5e5次就够了,太多就会超时(5e6的话洛谷和牛客的机子都会超时)
    貌似dp也可以做??

    代码:

    #include<bits/stdc++.h>
    typedef long long ll;
    using namespace std;
    inline int read(){
       int s=0,w=1;
       char ch=getchar();
       while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
       while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();//s=(s<<3)+(s<<1)+(ch^48);
       return s*w;
    }
    const int maxn=100;
    int a[maxn];
    int x[maxn];
    double tot;
    double ans=0x3f;
    int n,m;
    inline void calc()
    {
    	memset(x,0,sizeof(x));
    	for(int i=1;i<=n;i++)
    	{
    		int p=1;//第p组 
    		for(int j=1;j<=m;j++){
    			if(x[j]<x[p])p=j;
    		}
    		x[p]+=a[i];//每次把数加给最小的组 
    	}
    	double sum=0;
    	for(int i=1;i<=m;i++)
    	{
    		sum=sum+(x[i]-tot)*(x[i]-tot);
    	}
    	sum=sum/(double)m;
    	sum=sqrt(sum);
    	if(sum<ans)ans=sum;
    }
    int main()
    {
    	
    	cin>>n>>m;
    	
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    		tot+=a[i];
    	}
    	tot/=(double)m;
    	int T=5000000;
    	while(T--)
    	{
    		random_shuffle(a+1,a+1+n);
    		calc();
    	}
    	printf("%.2f\n",ans);
    }
    
    
    展开全文
  • 12.2.3 怎样使用种独特顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单方法填充行字段留下空单元格吗 283 12.2.6 简单方法填充许多列...
  • 12.2.3 怎样使用种独特顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单方法填充行字段留下空单元格吗 283 12.2.6 简单方法填充许多列...
  • 12.2.3 怎样使用种独特顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单方法填充行字段留下空单元格吗 283 12.2.6 简单方法填充许多列...
  • 12.2.3 怎样使用种独特顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单方法填充行字段留下空单元格吗 283 12.2.6 简单方法填充许多列...
  • 数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    5.抽象数据类型定义仅取决于它的一组__(1)_,而与_(2)_无关,即不论其内部结构如何变化,只要它_(3)_不变,都不影响其外部使用。【山东大学 2001 三、3(2分)】 6.数据结构中评价算法两个重要指标是...
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    (1)通讯录是按姓名项的字母顺序排列的; (2)能查找通讯录中某人的信息; (3)能添加和删除通讯录中的指定项。 注:要用面向对象的方法来设计程序,每个通讯录是个类的实例; 3、从终端读入字符集...
  • 4.2 选择实例的大小 4.3 设计测试数据 4.4 实验设计 4.5 高速缓存 4.5.1 简单计算机模型 4.5.2 缓存未命中运行时间影响 4.5.3 矩阵乘法 4.6 参考及推荐读物 第二部分 数据结构 第5章 线性表——数组描述 5.1 ...
  • MS Query基础语法讲解: 、单表查询 单表查询是指仅涉及个表查询 ...此法对于需要经常在局域网中查询数据非常方便,比如:数据放在局域网内的一台主机上,通过MS Query即可不打开工作簿查询数据
  • 14.7.5 函数传参实例五——判断数组排列方式后执行不同的函数 247 14.8 数组在对象中的传参 249 14.9 数组对象 250 14.10 在数组对象中初始化成员变量 251 14.11 指针数组 252 14.12 枚举常量与数组.. 257 ...
  • 数据结构是指相互直接存在种或多种特殊关系的数据元素集合。通常情况下,精心选择数据结构可以带来更高运行或者存储效率。作为名程序猿,更需要了解下数据结构。AND WHY?可以参考这篇...
  • c语言源代码

    2014-07-25 09:52:19
    同时把满足条件数据存入结构数组bb中 再结构数组bb中数据按照每组数据的第二个数加第三个数之和的大小进行降序排列 排序后结果仍重新存入结构数组bb中 最后调用函数writeDat 把结果bb输出到文件out37 txt中 ...
  • C语言科学和艺术.pdf

    热门讨论 2012-01-19 14:09:05
    12.2.1 对一个整数数排序 342 12.2.2 选择排序算法 343 12.2.3 选择排序效率评估 346 12.2.4 测试程序运行时间 347 12.2.5 选择排序算法分析 347 小结 348 复习题 348 程序设计练习 349 第13章 指针...
  • 1.17.1 大小端模式union类型数据的影响 39 1.17.2 如何用程序确认当前系统存储模式 40 1.18 enum关键字 44 1.18.1 枚举类型使用方法 44 1.18.2 枚举与特define宏区别 45 1.19 伟大缝纫师——typedef...
  • 在c语言中,对一组数据进行排列,可以采用冒泡法和选择法,还有C语言编译器函数库自带快速排序函数。下面三部分代码,分别采用了qsort,冒泡法排序,以及用冒泡法原理实现MyQsort。 qsort 参数分别是:待排序...

    在c语言中,对一组数据进行排列,可以采用冒泡法和选择法,还有C语言编译器函数库自带的快速排序函数。下面的三部分代码,分别采用了qsort,冒泡法排序,以及用冒泡法的原理实现MyQsort。

    qsort

    在这里插入图片描述
    参数分别是:待排序数组首地址,数组长度,各元素所占空间大小,指向函数的指针。

    #include<stdio.h>
    #include<stdlib.h>
    int Int_cmp(const void *elem1, const void *elem2)
    {
    	return (*(int*)elem1) - (*(int*)elem2);
    }
    int main()
    {
    	int arr[9] = { 1, 5, 9, 84, 65, 41, 21, 52, 369 };
    	int i = 0;
    	int len = sizeof(arr) /sizeof(arr[0]);
    	qsort(arr, len, sizeof(int), Int_cmp);
    	for (i = 0; i < len; i++)
    	{
    		printf("%d ",arr[i]);
    	}
    	printf("\n");
    	system("pause");
    	return 0;
    }
    

    冒泡法

    要提到的一点将代码优化。如果一组数本身就是有序的,或这在排序的过程中已经有序了,不需要一直排序到最后一步。代码如下:

    void Bubble_sort(int* arr, int len)
    {
    	int flag = 0;//定义一个标志
    	int i = 0;
    	int j = 0;
    	for (i = 0; i < len - 1;i++)
    	{
    		flag = 0;//在每一次比较前,标志要置零。
    		for (j = 0; j < len - 1 - i; j++)
    		{
    			int tmp = 0;
    			if (arr[j] >arr[j + 1])
    			{
    				tmp = arr[j];
    				arr[j] = arr[j + 1];
    				arr[j + 1] = arr[j];
    				flag = 1;//若发生了排序,程序继续走下去。
    			}
    		}
    		if (flag == 0)
    		{
    			break;//如果没有进行排序,程序跳出。
    		}
    	}
    	
    }
    int main()
    {
    	int arr[9] = { 1, 5, 9, 84, 65, 41, 21, 52, 369 };
    	int i = 0;
    	int len = sizeof(arr) / sizeof(arr[0]);
    	Bubble_sort(arr, len);
    	for (i = 0; i < len; i++)
    	{
    		printf("%d ", arr[i]);
    	}
    	printf("\n");
    	system("pause");
    	return 0;
    }
    

    用冒泡法实现MySort

    因为MyQsort要实现的不仅是int类型的数组,还有char,double……所以要将其强制转换为(char*)类型,要换成什么类型,直接乘size。

    //交换函数
    void Swap(const void *elem1, const void *elem2,int size)
    {
    	int i = 0;
    	for (i = 0; i < size; i++)
    	{
    		char tmp = *((char*)elem1 + i);
    		*((char*)elem1 + i) = *((char*)elem2 + i);
    		*((char*)elem2 + i) = tmp;
    	}
    }
    int Int_cmp(const void *elem1, const void *elem2)
    {
    	return (*(int*)elem1) - (*(int*)elem2);
    }
    void MyQsort(void *base, int len, int size, 
    	int(*p)(const void *elem1,
    	const void *elem2))
    {
    	int i = 0;
    	int j = 0;
    	for (i = 0; i < len - 1; i++)
    	{
    		for (j = 0; j < len - 1 - i; j++)
    		{
    			if (Int_cmp((char*)base + j*size, (char*)base + (j+1)*size))
    			{
    				Swap((char*)base + j*size, (char*)base + (j + 1)*size,size);
    			}
    		}
    	}
    }
    int main()
    {
    	int arr[9] = { 1, 5, 9, 84, 65, 41, 21, 52, 369 };
    	int i = 0;
    	int len = sizeof(arr) / sizeof(arr[0]);
    	MyQsort(arr, len, sizeof(int),Int_cmp);
    	for (i = 0; i < len; i++)
    	{
    		printf("%d ", arr[i]);
    	}
    	printf("\n");
    	system("pause");
    	return 0;
    }
    
    展开全文
  • LINGO软件学习

    2009-08-08 22:36:50
    学完本节后,你基于建模技术集如何引入模型会有个基本理解。 2.1 为什么使用集 集是LINGO建模语言基础,是程序设计最强有力基本构件。借助于集,能够用个单一、长、简明复合公式表示系列相似...
  • C 开发金典

    2013-06-20 16:20:03
    1.1.1 维数组倒置 2 范例1-1 维数组倒置 2 ∷相关函数:fun函数 1.1.2 维数组应用 3 范例1-2 维数组应用 3 1.1.3 维数组高级应用 5 范例1-3 维数组高级应用 5 1.1.4 显示杨辉三角 7 ...
  • C语言通用范例开发金典.part2.rar

    热门讨论 2012-08-31 14:18:18
    第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 维数组倒置 2 范例1-1 维数组倒置 2 ∷相关函数:fun函数 1.1.2 维数组应用 3 范例1-2 维数组应用 3 1.1.3 维数组高级应用 5 范例1-3 维数组...
  • C语言通用范例开发金典.part1.rar

    热门讨论 2012-08-31 14:09:26
    第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 维数组倒置 2 范例1-1 维数组倒置 2 ∷相关函数:fun函数 1.1.2 维数组应用 3 范例1-2 维数组应用 3 1.1.3 维数组高级应用 5 范例1-3 维数组...
  • sql经典语句部分

    2011-07-31 11:16:50
    15、说明:选择在每一组b值相同的数据中对应a最大记录所有信息(类似这样用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 153
精华内容 61
关键字:

对一组数据大小排列的函数