兽性小g吧 关注:54贴子:914
  • 1回复贴,共1

【兽性小g】冒泡排序法

只看楼主收藏回复

#include <stdio.h>
int main(int argc, const char * argv[])
{
int array[10]={60,50,48,87,36,95,28,04,73,19};
int i,j;
for (i=1; i<10; i++)//第几次排序
{
for (j=0; j<10-1; j++)//数组元素的比较次数
{
if (array[j] > array[j+1])//当两个相邻数满足条件时,互换数值
{
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for (i=0; i<10; i++)//通过循环输出数组值
{
printf("array[%d] = %d\n",i,array[i]);
}
return 0;
}


IP属地:黑龙江1楼2014-03-03 10:17回复
    改进后的冒泡法
    #include <stdio.h>
    int main(int argc, const char * argv[])
    {
    int a[10]={9,8,7,6,5,4,3,2,1,0};
    int i,j,k,flag;
    printf("排序前的数组序列:\n") ;
    for (i=0; i<10; i++) {
    printf("a[%d] = %d\n",i,a[i]);
    }
    for (i=1 ; i<10; i++) {
    flag = 0;
    for (j=0; j<10-i; j++) {
    if (a[j]>a[j+1]) {
    k=a[j];
    a[j]=a[j+1];
    a[j+1]=k;
    flag = 1;
    }
    }
    if (flag==0) {
    break;
    }
    for (int k=0; k<10; k++)//通过循环输出数组值
    {
    printf("%d ",a[k]);
    }
    printf("\n");
    }
    printf("排序后的数组序列:\n");
    for (i=0; i<10; i++)//通过循环输出数组值
    {
    printf("a[%d] = %d\n",i,a[i]);
    }
    return 0;
    }


    IP属地:黑龙江2楼2014-03-03 10:59
    回复