Skip to content
GitLab
菜单
项目
群组
代码片段
帮助
帮助
支持
社区论坛
快捷键
?
提交反馈
登录/注册
切换导航
菜单
打开侧边栏
Xingyue MA
xepTemplateLibrary
提交
e1ffae9f
提交
e1ffae9f
编辑于
5月 28, 2021
作者:
xep
浏览文件
2021.5.28 add qsort
上级
1c886a97
变更
1
Hide whitespace changes
Inline
Side-by-side
sort.cpp
0 → 100644
浏览文件 @
e1ffae9f
#include
<iostream>
#include
<utility>
/// <summary>
/// 快速排序标准实现
/// 排序范围为 [left, right)
/// 利用 operator lt
/// </summary>
template
<
typename
T
>
void
quick_sort
(
T
*
x
,
int
left
,
int
right
)
{
if
(
right
-
left
<=
1
)
return
;
T
pivot
=
x
[
left
];
//copy construct
int
p
=
left
;
for
(
int
i
=
left
+
1
;
i
<
right
;
i
++
)
{
if
(
x
[
i
]
<
pivot
)
{
p
++
;
std
::
swap
(
x
[
p
],
x
[
i
]);
}
}
std
::
swap
(
x
[
left
],
x
[
p
]);
quick_sort
(
x
,
left
,
p
);
quick_sort
(
x
,
p
+
1
,
right
);
}
#include
<algorithm>
#include
<time.h>
#include
<cstdlib>
using
namespace
std
;
int
main
()
{
constexpr
int
N
=
100
;
int
x
[
N
];
srand
(
time
(
NULL
));
for
(
int
i
=
0
;
i
<
N
;
i
++
)
{
x
[
i
]
=
rand
()
%
1000
;
}
quick_sort
(
x
,
0
,
N
);
for
(
int
i
=
0
;
i
<
N
;
i
++
)
{
cout
<<
x
[
i
]
<<
' '
;
}
cout
<<
endl
;
return
0
;
}
编辑
预览
Supports
Markdown
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录