数组的经典问题--冒泡排序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;}
printf("After sorted:\n"); //输出排序后的数组 for(i=0;i<10;i++) printf("%d",a[i]); }
补充:数组的经典问题
冒泡排序
冒泡排序
• 选择排序:从前向后排 a[0], a[1], a[2],…,a[n-2] • 冒泡排序:从后向前排 a[n-1], a[n-2], …, a[1]
int a[5]={9,8,5,-4,2};Biblioteka Baidu
98 589 -954 -924 29
a[4] ok~
58 -854 -284 28
printf("Input 10 integers:\n"); //输入10个数组元素
for(i=0;i<10;i++) scanf("%d", &a[i]);
for( i=0; i< 9; i++ ) //外循环:进行9轮冒泡 for( j=0; j< 9-i; j++ ) //内循环:a[0]~a[i]两两比较 if( a[j] > a[j+1] )
{ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp;}
printf("After sorted:\n"); //输出排序后的数组 for(i=0;i<10;i++) printf("%d",a[i]); }
#include<stdio.h>
源程序2
void main()
{ int i,j,temp,a[10];
n-1 – …

– 为确定a[i],对a[0]~a[i]两两比较,若a[j]>a[j+1], 则交换( j=0, …, i-1)
–…
– 为确定a[1], 比较a[0]、a[1],若a[0]>a[1],则交换
#include<stdio.h>
源程序1
void main()
{ int i,j,temp,a[10];
a[3] ok~
-54 -254 25
a[2] ok~
-4 2 a[1] ok~
冒泡排序算法
• 假设数组a共有n个元素,按升序排序,则:
– 为确定a[n-1], 对a[0]~a[n-1]两两比较,若 a[j]>a[j+1],则交换 ( j=0, …, n-2)
– 为确定a[n-2],对a[0]~a[n-2]两两比较,若 共 a[j]>a[j+1],则交换( j=0, …, n-3)
printf("Input 10 integers:\n"); //输入10个数组元素
for(i=0;i<10;i++) scanf("%d", &a[i]);
for( i=9; i>0; i-- ) //外循环:进行9轮冒泡 for( j=0; j< i; j++ ) //内循环:a[0]~a[i]两两比较 if( a[j] > a[j+1] )
相关文档
最新文档