冒泡排序 查找排序

废话不多说 直接上代码:

冒泡排序:

void BubbleSort(int *pArray, int size)
{
for (int i = 1; i < size;i++)
{
int m = i;
for (int j = 0; j < size - i;j++)
{
if (pArray[j]>pArray[j+1])
{
int temp = pArray[j];
pArray[j] = pArray[j + 1];
pArray[j + 1] = temp;
}
}
}


for (int i = 0; i < size;i++)
{
cout << pArray[i] << endl;
}
}



查找排序:

第一种实现方式:

void FindSort(int *pArray, int size)
{
for (int i = 0; i < size-1;i++)
{
for (int j = i+1; j < size;j++)
{
if (pArray[i]>pArray[j])
{
  int temp = pArray[i];
pArray[i] = pArray[j];
pArray[j] = temp;
}
}
}


for (int i = 0; i < size; i++)
{
cout << pArray[i] << endl;
}
}



第二种实现方式:

void FindSort(int *pArray, int size)
{
for (int i = 0; i < size-1;i++)
{
int m = i;
for (int j = i+1; j < size;j++)
{
if (pArray[i]>pArray[j])
{
m = j;
}
}
if (m!=i)
{
int temp;
temp = pArray[i];
pArray[i] = pArray[m];
pArray[m] = temp;
}
}


for (int i = 0; i < size; i++)
{
cout << pArray[i] << endl;
}
}

第二种实现方式可能比第一种查找排序效率更高,中间赋值次数少

你可能感兴趣的:(算法)