<求 c语言选择排序法和 冒泡排序法代码!-生活百科-春风百科
> 生活百科 > 列表
求 c语言选择排序法和 冒泡排序法代码!
时间:2024-12-23 21:23:18
答案

选择法的算法: 假设需要对10个数进行排序,那么首先找出10个数里面的最小数,并和这个10个数的第一个(下标0)交换位置,剩下9个数(这9个数都比刚才选出来那个数大),再选出这9个数中的最小的数,和第二个位置的数(下标1)交换,于是还剩8个数(这8个数都比刚才选出来的大).. 依次类推,当还剩两个数时,选出两个数的最小者放在第9个位置(下标8),于是就只剩下一个数了。这个数已经在最后一位(下标9),不用再选择了。所以10个数排序,一共需要选择9次(n个数排序就需要选择n-1次)。#include "Stdio.h"void main(){ void sa(int array[],int n); int array[10],i; printf("enter the array:\n"); for(i=0;i<10;i++) scanf("%d",&array[i]); sa(array,10); printf("the sorted array:\n"); for(i=0;i<10;i++) printf("%d\t",array[i]); getch();}void sa(int array[],int n){ int i,j,k,temp; for(i=0;i<10;i++) { k=i; for(j=i+1;j

main() { int i,j,temp; int a[10]; for(i=0;i<10;i++) scanf ("%d,",&a[i]); for(j=0;j<=9;j++) { for (i=0;i<10-j;i++) if (a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} } for(i=1;i<11;i++) printf("%5d,",a[i] ); printf("\n"); }--------------冒泡算法冒泡排序的算法分析与改进 交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反时即进行交换,直到没有反序的记录为止。 应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。 冒泡排序 1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。 (1)初始 R[1..n]为无序区。 (2)第一趟扫描 从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key=i;j--) //对当前无序区R[i..n]自下向上扫描 if(R[j+1].key

勤奋一点网上都可找到,这是帮你拷的。祝你进步!

推荐
© 2024 春风百科