冒泡算法
一、冒泡算法
1、方式一
[c-sharp]
bubble_sort(int Array[],int Size)
{
int i,j,temp;
if(Array == NULL)
return -1;
for(i=0;i<Size-1;i++) {
for(j=0;j<Size-1-i;j++) {
if(Array[j]>Array[j+1]) {
temp = Array[j];
Array[j] = Array[j+1];
Array[j+1] = temp;
}
}
}
return 0;
}
2、方式二
int bubble_sort(int Array[], int size)
{
int i = size, j;
int temp;
if(Array == NULL)
return -1;
while(i-- > 0) {
for(j = 0; j < i - 1; j++) {
if(Array[j] > Array[j + 1]) {
temp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = temp;
}
}
}
return 0;
}
3、方式三
int bubble_sort(int Array[], int size)
{
int i = size, j;
int temp;
if(Array == NULL)
return -1;
for(i = size; i > 0; i--) {
for(j = 0; j < i - 1; j++) {
if(Array[j] > Array[j + 1]) {
temp = Array[j];
Array[j] = Array[j + 1];
Array[j + 1] = temp;
}
}
}
return 0;
}
二、冒泡算法优化
在函数中定义一个bool 的变量 issorted ,在每趟对剩余的数字排序时,先把它设为true,然后当发生两个两个相邻的数没有按要求排时,在交换这两个数的同时,把issorted设为false,不然就一直保持为true。
在进行好一趟排序之后,测试issorted这个变量的值,如果保持true,就说明已经排好序了,停止继续排序,不然进行下一趟排序。
具体代码:
[c-sharp]
void bubble_sort(int Array[], int Size)
{
int i,j,temp;
bool issorted;
for(i=0; i<Size-1; i++){
issorted = true;
for(j=0; j<Size-1-i; j++){
if(Array[j] > Array[j+1]){
temp = Array[j];
Array[j] = Array[j+1];
Array[j+1] = temp;
issorted = false;
}
}
if(issorted)
break;
}
}
补充:软件开发 , C# ,