两种排序方法

冒泡排序

#include<stdio.h>    
int main()
{
    int n[10] = { 25,35,68,79,21,13,98,7,16,62 };//定义一个大小为10的数组
    int i, j, temp;
    for (i = 1; i <= 9; i++)//外层循环是比较的轮数,数组内有10个数,那么就应该比较10-1=9轮
    {
        for (j = 0; j <= 9 - i; j++)//内层循环比较的是当前一轮的比较次数,例如:第一轮比较9-1=8次,第二轮比较9-2=7次
        {
            if (n[j] > n[j + 1])//相邻两个数如果逆序,则交换位置
            {
                temp = n[j];
                n[j] = n[j + 1];
                n[j + 1] = temp;
            }
        }
    }
    printf("排序过后的数顺序:\n");
    for (i = 0; i < 10; i++)
    printf("%-4d", n[i]);
    printf("\n");
}


选择排序

#include<stdio.h> 
int main() 
{
	int a[10]={26,54,93,17,71,31,44,55,20};  
	int i,j,t,n=9; 
	int min = 0;   
	for(i=0;i<n-1;i++) // 外层循环 
	{
		min = i; // 外层每循环一次,将i的值赋给min 
	    for(j=i+1;j<n;j++)// 内层循环 
		{
			if(a[min]>a[j])
			{
			 min = j;
			}
		}
	  t = a[min];  // 交换位置 
	   a[min] = a[i];
	   a[i] = t;
	 }
	 printf("排序后的:");
	 for(i=0;i<n;i++)  
	 {
	 	printf("%d ",a[i]);
	 }
	return 0;
}


       

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值