• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wchenfeng

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

冒泡法与递归解决绝对值排序-99, 98, 102, -101, 100

冒泡法与递归解决绝对值排序-99, 98, 102, -101, 100

#include <stdio.h>
#include <math.h>

void swap(int* a, int* b) 
{
	int tmp;
	tmp = *a;
	*a=*b;
	*b=tmp;
}

void printf_list(int list[], int len)
{
    int i;

    for (i = 0; i < len; ++i) 
	{
        printf("%d\t", list[i]);
    }
    printf("\n");
}

void sort_soap(int list[], int len, int fabs_(int ,int))
{
    int i, j;
    for (j = 0; j < len-1; j++)
	{
        for (i = 0; i < len-j-1; i++) 
		{
            if ( fabs_(list[i], list[i + 1]) > 0 ) 
			{
				//交换相邻的两个数
				swap(&list[i], &list[i + 1]);
			}
		}
    }
}

int fabs_(int x ,int y)

{
	int z;
	z=fabs((float)x)-fabs(/*(float)*/y);
	return z;
}
	/*if(z>0)return 1;
	else return */
/*
5
99 98 102 101 100
*/

void main(void)
{
	int list[128]={-99, 98, 102, -101, 100};
    int m=5;

    sort_soap(list, m, fabs_);
    printf_list(list, m);
}


 

posted on 2022-04-12 20:04  王陈锋  阅读(38)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3