File: Sorting-vectors.html

package info (click to toggle)
gsl-ref-html 2.3-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, sid
  • size: 6,876 kB
  • ctags: 4,574
  • sloc: makefile: 35
file content (150 lines) | stat: -rw-r--r-- 8,368 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".

(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library &ndash; Reference Manual: Sorting vectors</title>

<meta name="description" content="GNU Scientific Library &ndash; Reference Manual: Sorting vectors">
<meta name="keywords" content="GNU Scientific Library &ndash; Reference Manual: Sorting vectors">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Sorting.html#Sorting" rel="up" title="Sorting">
<link href="Selecting-the-k-smallest-or-largest-elements.html#Selecting-the-k-smallest-or-largest-elements" rel="next" title="Selecting the k smallest or largest elements">
<link href="Sorting-objects.html#Sorting-objects" rel="previous" title="Sorting objects">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Sorting-vectors"></a>
<div class="header">
<p>
Next: <a href="Selecting-the-k-smallest-or-largest-elements.html#Selecting-the-k-smallest-or-largest-elements" accesskey="n" rel="next">Selecting the k smallest or largest elements</a>, Previous: <a href="Sorting-objects.html#Sorting-objects" accesskey="p" rel="previous">Sorting objects</a>, Up: <a href="Sorting.html#Sorting" accesskey="u" rel="up">Sorting</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Sorting-vectors-1"></a>
<h3 class="section">12.2 Sorting vectors</h3>

<p>The following functions will sort the elements of an array or vector,
either directly or indirectly.  They are defined for all real and integer
types using the normal suffix rules.  For example, the <code>float</code>
versions of the array functions are <code>gsl_sort_float</code> and
<code>gsl_sort_float_index</code>.  The corresponding vector functions are
<code>gsl_sort_vector_float</code> and <code>gsl_sort_vector_float_index</code>.  The
prototypes are available in the header files <samp>gsl_sort_float.h</samp>
<samp>gsl_sort_vector_float.h</samp>.  The complete set of prototypes can be
included using the header files <samp>gsl_sort.h</samp> and
<samp>gsl_sort_vector.h</samp>.
</p>
<p>There are no functions for sorting complex arrays or vectors, since the
ordering of complex numbers is not uniquely defined.  To sort a complex
vector by magnitude compute a real vector containing the magnitudes
of the complex elements, and sort this vector indirectly.  The resulting
index gives the appropriate ordering of the original complex vector.
</p>
<a name="index-sorting-vector-elements"></a>
<a name="index-vector_002c-sorting-elements-of"></a>
<dl>
<dt><a name="index-gsl_005fsort"></a>Function: <em>void</em> <strong>gsl_sort</strong> <em>(double * <var>data</var>, const size_t <var>stride</var>, size_t <var>n</var>)</em></dt>
<dd><p>This function sorts the <var>n</var> elements of the array <var>data</var> with
stride <var>stride</var> into ascending numerical order.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fsort2"></a>Function: <em>void</em> <strong>gsl_sort2</strong> <em>(double * <var>data1</var>, const size_t <var>stride1</var>, double * <var>data2</var>, const size_t <var>stride2</var>, size_t <var>n</var>)</em></dt>
<dd><p>This function sorts the <var>n</var> elements of the array <var>data1</var> with
stride <var>stride1</var> into ascending numerical order, while making the
same rearrangement of the array <var>data2</var> with stride <var>stride2</var>,
also of size <var>n</var>.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fsort_005fvector"></a>Function: <em>void</em> <strong>gsl_sort_vector</strong> <em>(gsl_vector * <var>v</var>)</em></dt>
<dd><p>This function sorts the elements of the vector <var>v</var> into ascending
numerical order.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fsort_005fvector2"></a>Function: <em>void</em> <strong>gsl_sort_vector2</strong> <em>(gsl_vector * <var>v1</var>, gsl_vector * <var>v2</var>)</em></dt>
<dd><p>This function sorts the elements of the vector <var>v1</var> into ascending
numerical order, while making the same rearrangement of the vector <var>v2</var>.
</p></dd></dl>

<a name="index-indirect-sorting_002c-of-vector-elements"></a>
<dl>
<dt><a name="index-gsl_005fsort_005findex"></a>Function: <em>void</em> <strong>gsl_sort_index</strong> <em>(size_t * <var>p</var>, const double * <var>data</var>, size_t <var>stride</var>, size_t <var>n</var>)</em></dt>
<dd><p>This function indirectly sorts the <var>n</var> elements of the array
<var>data</var> with stride <var>stride</var> into ascending order, storing the
resulting permutation in <var>p</var>.  The array <var>p</var> must be allocated with
a sufficient length to store the <var>n</var> elements of the permutation.
The elements of <var>p</var> give the index of the array element which would
have been stored in that position if the array had been sorted in place.
The array <var>data</var> is not changed.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fsort_005fvector_005findex"></a>Function: <em>int</em> <strong>gsl_sort_vector_index</strong> <em>(gsl_permutation * <var>p</var>, const gsl_vector * <var>v</var>)</em></dt>
<dd><p>This function indirectly sorts the elements of the vector <var>v</var> into
ascending order, storing the resulting permutation in <var>p</var>.  The
elements of <var>p</var> give the index of the vector element which would
have been stored in that position if the vector had been sorted in
place.  The first element of <var>p</var> gives the index of the least element
in <var>v</var>, and the last element of <var>p</var> gives the index of the
greatest element in <var>v</var>.  The vector <var>v</var> is not changed.
</p></dd></dl>

<hr>
<div class="header">
<p>
Next: <a href="Selecting-the-k-smallest-or-largest-elements.html#Selecting-the-k-smallest-or-largest-elements" accesskey="n" rel="next">Selecting the k smallest or largest elements</a>, Previous: <a href="Sorting-objects.html#Sorting-objects" accesskey="p" rel="previous">Sorting objects</a>, Up: <a href="Sorting.html#Sorting" accesskey="u" rel="up">Sorting</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>