有一个数组 3 7 5 0 2 9 8,用冒泡法对它排序,要求写出每一趟排序的结果。
3 7 5 0 2 9 8
3 5 0 2 7 8 9
3 0 2 5 7 8 9
0 2 3 5 7 8 9
你没有说是按照从大到小还是从小到大顺序
冒泡网上一搜就出来了啊
# include <stdio.h>
# define N 7
void bubble_sort(int a[], int n)//n为数组a的元素个数
{
int i, j, temp;
for(j=0; j<n-1; j++)
for(i=0; i<n-1-j; i++) {
if(a[i]>a[i+1]) {//数组元素大小按升序排列
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
int main(void) {
int array[N] = {3, 7, 5, 0, 2, 9, 8};
int i;
bubble_sort(array, N);
for (i=0; i<N; i++) {
printf("%2d", array[i]);
}
return 0;
}
public static void main(String[] args){
int[] values={3, 7, 5, 0, 2, 9, 8};
double_sort(values);
}
public static void double_sort(int[] values){
int temp;
int n = 0;
for(int i=0;i<values.length;i++){//趟数
for(int j=0;j<values.length-i-1;j++){//比较次数
if(values[j]>values[j+1]){
temp=values[j];
values[j]=values[j+1];
values[j+1]=temp;
}
}
n++;
System.out.println("第 "+n+" 次排序-----");
for(int k=0;k<values.length;k++){
System.out.print(values[k]+",");
}
System.out.println();
}
}
输出
第 1 次排序-----
3,5,0,2,7,8,9,
第 2 次排序-----
3,0,2,5,7,8,9,
第 3 次排序-----
0,2,3,5,7,8,9,
第 4 次排序-----
0,2,3,5,7,8,9,
第 5 次排序-----
0,2,3,5,7,8,9,
第 6 次排序-----
0,2,3,5,7,8,9,
第 7 次排序-----
0,2,3,5,7,8,9,