考研数据结构(每日一题)day50

考研数据结构(每日一题)day50,第1张

考研数据结构(每日一题)

题目:已知线性表按顺序存储,且每个元素都是不相同的整数型元素,设计所有奇数移动到所有偶数前面的算法。

算法思想:

使用快速排序思想,假设表为L[1…n],先从前向后找到一个偶数元素L(i),再从后向前找到一个奇数元素L(j),将二者交换,重复上述 *** 作直到i大于j。

完整代码:
void move(ElemType A[],int len){
    int i = 0;   //i表示左端偶数元素的下标
    int j = len - 1;  //j表示右端奇数元素的下标
    while (i < j)
    {
        while (i < j && A[i] % 2 != 0)
        {
            i ++;   //从前向后找到一个偶数元素
        }
        while (i < j && A[j] % 2 != 1)
        {
            j --;   //从后向前找到一个奇数元素
        }
        if (i < j)
        {
            swap(A[i],A[j]);   //交换这两个元素
            i ++;
            j --;
        }   
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/741091.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-28
下一篇2022-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存