IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【C语言】选择排序+求出最小值的位置 -> 正文阅读

[C++知识库]【C语言】选择排序+求出最小值的位置

?1.?对负数数组取绝对值进行排序(从大到小)

#include<stdio.h>
#include<math.h>
void SelectionSort(int *arr, int n) 
{
    for (int i = 0; i < n; i++) 
    {
        int Maxkey = abs(arr[i]); 
        for(int j=i; j<n; j++)
        {
            if(Maxkey<abs(arr[j]))
            {
                int temp = abs(arr[j]);
                arr[j]=abs(Maxkey);
                Maxkey=abs(temp);
            }
        }
        arr[i]=abs(Maxkey);
    }
}

int main() {
    int a[] = {-12,-7,-9,-22,-22,-88,-4,-1,1,-1,-53};
    int n = sizeof(a)/sizeof(int);
    InsertSort(a, n);
    printf("The sorted array is:");
    for (int i = 0; i < n; i++) {
        printf(" %d", a[i]);
    }
    printf("\n");
    return 0;
}

2.?对负数数组取绝对值进行排序(从小到大)

#include<stdio.h>
#include<math.h>
void SelectionSort(int *arr, int n) 
{
    for (int i = 0; i < n; i++) 
    {
        int Minkey = abs(arr[i]); 
        for(int j=i; j<n; j++)
        {
            if(Minkey>abs(arr[j]))
            {
                int temp = abs(arr[j]);
                arr[j]=abs(Minkey);
                Minkey=abs(temp);
            }
        }
        arr[i]=abs(Minkey);
    }
}

int main() {
    int a[] = {-12,-7,-9,-22,-22,-88,-4,-1,1,-1,-53};
    int n = sizeof(a)/sizeof(int);
    SelectionSort(a, n);
    printf("The sorted array is:");
    for (int i = 0; i < n; i++) {
        printf(" %d", a[i]);
    }
    printf("\n");
    return 0;
}

?2.1 在keil5中需要包括头文件

#include <math.h>
#include <stdlib.h>//abs
void SelectionSort(int8_t *arr, int8_t n) 
{
    int8_t Minkey;
    int8_t temp;
    for (int8_t i = 0; i < n; i++) 
    {
        Minkey = abs(arr[i]); 
        for(int j=i; j<n; j++)
        {
            if(Minkey>abs(arr[j]))
            {
                temp = abs(arr[j]);
                arr[j]=abs(Minkey);
                Minkey=abs(temp);
            }
        }
        arr[i]=abs(Minkey);
    }
}

?2.2 sizeof(array)/sizeof(int)

array是个数组,
sizeof (array)就是这个数组所占的内存总量(字节数),
sizeof(int)就是单个所占的内存。
所以,sizeof(array)/sizeof(int)就是array数组的元素的个数。

3. 求一维数组最大值的位置

求出数组长度,设立一个变量imax记录当前最大值的下标;对数组进行遍历比较,总是把最大值的下标赋给imax,遍历完成后imax即为所求位置。

#include<stdio.h>
int main(void){
    int a[]={1,6,18,19,13,5,2,-20,30,4,12,14,15,16,17,7,8,9,10,11},i,imax,ln;
    ln=sizeof(a)/sizeof(int);
    for(i=imax=0;i<ln;i++)
        if(a[imax]<a[i])
            imax=i;
    printf("The maximum is the subscript of %d elements.\n",imax);
    return 0;
}

4.?求一维数组最小值的位置

#include<stdio.h>
int main(void){
    int a[]={1,6,18,19,13,5,2,-20,30,4,12,14,15,16,17,7,8,9,10,11},i,imin,ln;
    ln=sizeof(a)/sizeof(int);
    for(i=imin=0;i<ln;i++)
        if(a[imin]>a[i])
            imin=i;
    printf("The minimum is the subscript of %d elements.\n",imin);
    return 0;
}

5.?求一维数组绝对值最小值的位置

#include<stdio.h>
#include<math.h>
int main(void){
    int a[]={4,6,18,19,13,5,2,-20,30,4,12,1,-1,16,17,7,8,9,10,11},i,imin,ln;
    ln=sizeof(a)/sizeof(int);
    for(i=imin=0;i<ln;i++)
        if(a[imin]>abs(a[i]))
            imin=i;
    printf("The minimum is the subscript of %d elements.\n",imin);
    return 0;
}

这种算法只能求出数组左边的最小值,如果数组中有两个最小值,那么求出的数组位置就是左面最小值的位置。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 11:44:21  更:2021-09-01 11:44:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:36:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码