利用指针的动态分配内存空间的冒泡排序

 时间:2026-02-13 01:58:47

1、#include<iostream>

using namespace std;

void sort(char *name[], int n)

{

    char *tmp;

    int i, j;

    for (i = 0;i < n - 1;i++)

    {

        for (j = 1;j < n;j++)

        {

            if (strcmp(name[j-1],name[j]) > 0)

            {

                tmp = name[j];

                name[j] = name[j - 1];

                name[j - 1] = tmp;

            }

        }

    }

}

void print(char *name[], int n)

{

    int i = 0;

    char *p;

    p = name[0];

    while (i < n)

    {

        p = *(name + i++);

        cout << p << endl;

    }

}

int main()

{

    char *name[] = { "mingri", "soft", "C++", "mr" };

    int n = 4;

    print(name, n);

    sort(name, n);

    cout << "排序后:" << endl;

    print(name, n);

    return 0;

}

1、关键函数为sort,算法的原理如下: 

1. 比较相邻的元素:

strcmp(name[j-1],name[j]。

2.如果第一个比第二个大,就交换他们两个:

tmp = name[j];

name[j] = name[j - 1];

name[j - 1] = tmp;

3.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个:

嵌套for里的第一个for

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较:

嵌套for里的第二个for

  • 如何求y=cos3x与y=cos6x围成的面积
  • 如何掌握那些精辟的人生哲理?
  • 王者荣耀赛季s24赛季什么时候结束
  • qq飞车手游怎样获得逐星者-恋语
  • 考研要不要报辅导班
  • 热门搜索
    亚龙湾旅游攻略 米胖旅游网 龙岩旅游景点大全 郭德纲 我要旅游 莱芜旅游景点 陕西安康旅游 法国著名旅游景点 潮州旅游攻略 山东省旅游地图 云南旅游攻略穷游