首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于冒泡排序,该怎么解决

2012-10-09 
关于冒泡排序C/C++ codevoid swap(int *a, int *b){int temptemp *a*a *b*b temp}void bubble(i

关于冒泡排序

C/C++ code
void swap(int *a, int *b){    int temp;    temp = *a;    *a = *b;    *b = temp;}void bubble(int *array, int num){    int i, j;    for(i = 0; i < num -1; i++)    {        for(j = i+1; j < num ; j++)        {            if(*(array+i) > *(array+j))            {                swap(array+i, array+j);            }        }    }}

排序在实际应用中用的比较多,面试也问得多
而冒泡排序在排序算法中应该是最常见的了
大家觉得这个算是冒泡排序么,

[解决办法]
C/C++ code
/***功能     :冒泡排序法排序,赋值操作符,默认构造函数**限制     :排序元素实现>操作符**实现方法 :**参数     :           :elements  :要排序的元素数组           :ele_num   :数组中元素的个数**返回     :          :排序后的数组*/template<typename T> T* Sort_Bubble(T* elements, int ele_num){    //ASSERT(elements != NULL && ele_num > 0);    int sec_index = ele_num;    T e_Tmp;    bool unorder_exist;    for(int i = 0; i < ele_num - 1; i++)    {        unorder_exist = false;        for(int j = 0; j < sec_index - 1; j++)        {            if(*(elements + j) > *(elements + j + 1))            {                e_Tmp = *(elements + j);                *(elements + j) = *(elements + j + 1);                *(elements + j + 1) = e_Tmp;                unorder_exist = true;            }        }        if(!unorder_exist)        {            break;        }        sec_index--;    }    return elements;}
[解决办法]
是的 哦
[解决办法]
一般的冒泡法
[解决办法]
冒泡法
[解决办法]
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void bubble(int *array, int num)
{
int i, j;
for(i = 0; i < num -1; i++)
{
for(j = 0; j < num - i - 1 ; j++)
{
if(*(array+j) > *(array+j+1)) //冒泡是相邻数据两两比较,最后将最大值放到最后;
{
swap(array+j, array+j+1);
}
}
}
}

修改了一下你的代码,作为一个参考吧!
[解决办法]
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void bubble(int *array, int num)
{
int i, j;
for(i = 0; i < num -1; i++)
{
for(j = i+1; j < num-1-i ; j++)
{
if(*(array+i) > *(array+j))
{
swap(array+i, array+j);
}
}
}
}

[解决办法]
冒泡排序的精髓不是在于flag的使用吗?
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void bubble(int *array, int num)
{
int i, j;
int flag=0;
for(i = 0; i < num -1; i++)
{
flag=0;
for(j = i+1; j < num-1-i ; j++)
{
if(*(array+i) > *(array+j))
{
swap(array+i, array+j);
flag=1;
}
}
if(!flag)
break;
}
}
[解决办法]
int[] arrSum = { 132, 4, 66, 5, 362, 9, 25, 28, 3, 62, 198, 95, 2, 125, 133, 33, 250, 20, 1 };

//冒泡排序法
protected int[] pAdd(int[] arrSum)
{
int iSum = 0;


bool boolYN = true;
while (boolYN)
{
boolYN = false;
for (int i = 0; i < arrSum.Length; i++)
{
if (i != arrSum.Length - 1 && arrSum[i] > arrSum[i + 1])
{
iSum = arrSum[i];
arrSum[i] = arrSum[i + 1];
arrSum[i + 1] = iSum;
boolYN = true;
}
}
}
return arrSum;
}
[解决办法]
楼主这个是简单选择排序不是冒泡排序
[解决办法]

探讨
引用:

void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void bubble(int *array, int num)
{
int i, j;
for(i = 0; i < num -1; i++)
{
for(j……

这个没多大……

热点排行