首页 > 其他分享 >选择排序

选择排序

时间:2024-05-30 15:35:12浏览次数:12  
标签:end int 选择 flag num vt 排序 loop

#include <iostream> #include <string> #include <string.h> #include <vector> #include <map> #include <set> using namespace std;
void print(const vector<int>& vt_num) {     for (const int& i : vt_num)     {         cout << i << ' ';     }     cout << '\n'; } void deal_input(vector<int>& vt_num) {     char str_pin[1024]{ 0 };     fgets(str_pin, 1024, stdin);     int str_pin_len = strlen(str_pin);     int loop_end = str_pin_len - 1;     int loop_flag = 0;     while (loop_flag < loop_end)     {         if (str_pin[loop_flag] != ' ')         {             vt_num.push_back(str_pin[loop_flag] - '0');         }         loop_flag++;     } #ifdef _DEBUG     print(vt_num); #endif }
int main(int argc, char* argv[]) {     vector<int> vt_num;     deal_input(vt_num);     int vt_num_len = vt_num.size();     int loop_end = 0, vt_min_flag = 0;     while (loop_end < vt_num_len)     {         vt_min_flag = loop_end;         for (int i = loop_end;i < vt_num_len;i++)         {             if (vt_num[i] < vt_num[vt_min_flag])             {                 vt_min_flag = i;             }         }
        if (vt_min_flag != loop_end)         {             vt_num[vt_min_flag] += vt_num[loop_end];             vt_num[loop_end] = vt_num[vt_min_flag] - vt_num[loop_end];             vt_num[vt_min_flag] = vt_num[vt_min_flag] - vt_num[loop_end];         }                 loop_end++;     }
    print(vt_num); }
/* 选择排序解释 把第一小的放第一个 把第二小的放第二个 把第三小的放第三个 ··············· 把第n小的放第n个
或者反过来,从最大的搞 */

标签:end,int,选择,flag,num,vt,排序,loop
From: https://www.cnblogs.com/ccxk-accumulate/p/18222037

相关文章

  • 面试官:如果不允许线程池丢弃任务,应该选择哪个拒绝策略?
    线程池的拒绝策略有哪些?如果当前同时运行的线程数量达到最大线程数量并且队列也已经被放满了任务时,ThreadPoolExecutor定义一些策略:ThreadPoolExecutor.AbortPolicy:抛出RejectedExecutionException来拒绝新任务的处理。ThreadPoolExecutor.CallerRunsPolicy:调用执行自己的......
  • 加盟招商合作模式全攻略:如何选择合适的合作伙伴?
    在当下竞争激烈的商业环境中,加盟招商合作模式成为了品牌扩张、快速占领市场的重要手段。然而,如何选择合适的合作伙伴,确保双方能够携手共进、实现共赢,是每个品牌都需要深思的问题。作为一名手工酸奶品牌的创始人,目前全国也复制了100多家门店。本文将从品牌发展的角度出发,为您揭......
  • 数据结构学习笔记-冒泡排序
    冒泡排序的算法设计与分析问题描述:设计并分析冒泡排序算法【算法设计思想】遍历数组,从第一个元素到倒数第二个元素(因为最后一个元素不需要再比较,它已经是最大的了)。在每次遍历过程中,再次遍历未排序部分的元素(从第一个到当前未排序部分的末尾),比较相邻的两个元素,如果顺序不正确......
  • Hive中常用query--关联/聚合/去重/排序举例
    在Hive中,可以使用各种查询来执行关联(JOINs)、聚合(Aggregations)、去重(Distinct)和排序(Sorting)操作。以下是一些常见的查询示例:关联(JOIN):在Hive中执行关联操作通常是为了将两个或多个表中相关的行连接起来。SELECTe.name,e.salary,d.department_nameFROMemployeeseJOIN......
  • 大模型之选择?
    网页端还是手机端?网页端是生产力,手机端是玩具。选哪一家国产大模型?Kimi是我最喜欢的,界面简洁优雅,有类似Apple设计美学。阿里(通义千问)、腾讯(元宝)、字节(豆包)三家因为背后的公司很有钱,所以技术力也不分伯仲,可以都试一试看个人喜好。百度的文心一言我觉得不开会员很难用,但是......
  • C语言实现排序之冒泡排序算法
    1.代码#include<stdlib.h>#include<stdio.h>#include<time.h>//函数声明//创建并生成一个包含随机数的数组,数组大小由参数size指定int*create_and_generate_random_array(intsize);//打印数组内容,参数array是数组指针,size是数组大小voidprint_array(int*arr......
  • C语言实现排序之选择排序算法
    1.代码#include<stdlib.h>#include<stdio.h>#include<time.h>//函数声明int*create_and_generate_random_array(intsize);voidprint_array(int*array,intsize);voidselection_sort(int*array,intsize);intgenerate_random_size();intm......
  • 指针(2),迭代,快速排序,单词倒置
    指针运算:& * +N-Np++ //往后跳了一个元素 p-- //往前一个元素 p-q //相同类型的指针减出的来的结果为,地址之间相差的元素个数 关系运算:p>q  p<q >>=<<=!= 迭代:迭代其实就是一种特殊的循环,迭代根据上一次循环得到的运算结果来进行下......
  • linux 查看csv文件,按指定列聚合 排序
    在Linux中,你可以使用awk工具来查看CSV文件的内容,并按照指定的列进行聚合。awk是一种强大的文本处理工具,它可以处理文本文件中的数据,并根据条件执行相应的操作。以下是一个示例,假设你有一个名为data.csv的CSV文件,其中包含三列数据:姓名、年龄和性别,内容如下:姓名,年龄,性别张......
  • 排序(前篇)
    1.排序的概念及其运用2.插入排序的概念及实现3.希尔排序的概念及实现 4.选择排序概念及实现总代码(对比各个排序在大量的数据情况排序所化的时间):1.排序的概念及其运用1.1排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的......