现在的位置: 首页 > 综合 > 正文

数组分隔

2013年10月31日 ⁄ 综合 ⁄ 共 500字 ⁄ 字号 评论关闭

欢迎大家光顾论坛 http://jobexam.net

【题目】有一个顺序表L,其元素为整型数据,设计一个算法,将L中所有小于表头的元素的整数放在前半部分,大于表头元素的整数放在后半部分。

【解析】这道其实就是快速排序的一趟排序。下面的代码是算法导论里面使用的。我觉得很好。

?
代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include
"Partition.h"
#include
<iostream>
using

namespace

std;
void

partition(
int

A[],
int

length)
{
    int

tmp;
    int

j = 0;
    for(int

i=1; i<length; i++)
    {
        if(A[i]
<= A[0])
        {
            tmp
= A[j+1];
            A[j+1]
= A[i];
            A[i]
= tmp;
            j++;
        }
    }
}
 
int

main(
char

**argv,
int

argc)
{

抱歉!评论已关闭.