首页 > 其他分享 >每日打卡

每日打卡

时间:2023-04-14 21:57:24浏览次数:38  
标签:arr cout int 每日 元素 ++ 打卡 排序

#include<iostream>冒泡排序
using namespace std;

#define N 10
int main()
{
int arr[N] = { 1,4,6,3,0,2,5,9,8,7 };
Bubble_Sort(arr, 10);
for (int i = 0; i < N; i++)
{
cout << arr[i] << ",";
}
cout << endl;
return 0;
}

void BubbleSort(int arr[], int len)
{
int i = 0;
int tmp = 0;
for (i = 0; i < len - 1; i++)//确定排序趟数
{
int j = 0;
int flag = 0;
for (j = 0; j < len - i - 1; j++)//确定比较次数
{
if (arr[j]>arr[j + 1])
{
//交换
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
flag = 1;//加入标记
}
}
if (flag == 0)//如果没有交换过元素,则已经有序
{
return;
}
}
}

 

 

 

 

  •   冒泡排序算法的原理如下:

    比较相邻的两个元素,如果前者比后者大(反之倒序),则交换。
  • 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。
  • 针对所有的元素重复以上的步骤。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

#include<iostream>选择排序
using namespace std;
#define N 10

void Select_Sort(int* arr, int n) //arr为数据数组,n为数组长度
{
for (int i = 0; i < n-1; i++) {
int min = i;
for (int j = i; j < n; j++) {
if (arr[min] > arr[j]) {
min = j;
}
}
if (min != i) {
swap(arr[i], arr[min]);
}
}
}

int main()
{
int arr[N]= { 1,4,6,3,0,2,5,9,8,7 };
Select_Sort(arr, 10);
for (int i = 0; i < N; i++)
{
cout << arr[i] << ",";
}
cout << endl;
return 0;
}

选择排序算法通过选择和交换来实现排序,其排序流程如下:

(1)首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。
(2)接着从剩下的n-1个数据中选择次小的1个元素,将其和第2个位置的数据交换
(3)然后,这样不断重复,直到最后两个数据完成交换。最后,便完成了对原始数组的从小到大的排序。

#include<iostream>插入排序
using namespace std;
#define N 10

void Insert_Sort(int* arr, int n)
{
for (int i = 0; i < n; i++) {
for (int j = i; j > 0; j--) {
if (arr[j] < arr[j-1]) {
swap(arr[j], arr[j - 1]);
}
}
}
}

int main()
{
int arr[N] = { 1,4,6,3,0,2,5,9,8,7 };
Insert_Sort(arr, 10);
for (int i = 0; i < N; i++)
{
cout << arr[i] << ",";
}
cout << endl;
return 0;
}

 

 

插入算法把要排序的数组分成两部分:

  • 第一部分包含了这个数组的所有元素,但将最后一个元素除外,
  • 而第二部分就只包含这一个元素(即待插入元素)。
  • 在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。

标签:arr,cout,int,每日,元素,++,打卡,排序
From: https://www.cnblogs.com/zhaoqianwan/p/17320051.html

相关文章

  • 每日总结-23.4.14
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"&g......
  • 天天打卡一小时——1
    一.问题描述输入一个年份,判断是否闰年二.设计思路1.闰年的概念:能被4整除却不能被100整除或能被400整除的年份就是闰年2.输入一个数字代表年份3.若这个数字可以被4或400整除则将这个数存储到变量year中,为闰年;反之不是闰年三.程序流程图  四.代码实现#include<iostream......
  • 打卡5
    1.10数制转换    #include<bits/stdc++.h>usingnamespacestd;intsource,object,length;//储存原数,村拿出目标数值,存储字符串长度longdecimal_num;//存储十进制chartemp[1000];//存转换后的数值intflag=1;//是否退出的标志/*将字符转换为数字*/intchar_to......
  • 4.14每日总结
    所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的,我们都需要对用户输入的数据进行过滤处理。以下实例中,输入的用户名必须为字母、数字......
  • 2023.4.14每日总结
    cookie和session在传值中的作用,能够让我们十分方便的对于这些用户名和密码很多地方都需要的变量一直传值的问题,还使用了一些关于css布局的问题,将背景换成自己喜欢的图片,使得整个项目变得更加的好看,还学会了使用<a>进行传值,还有jsp:forward jsp:param这两个的传值和使用Login.jsp......
  • 趣味打卡第一天(包装机)
    包装机用到栈和队列:注意要找准用栈还是队列,栈要注意段错误#include<bits/stdc++.h>usingnamespacestd;intmain(){stack<char>kuang;//用栈模拟框(容易理解)queue<char>a[1000];//用队列模拟轨道(它是按键盘的输入顺序输出的,是先进先出)intm,n,s;cin>>n>>m>>s;......
  • 打卡3
      #include<stdio.h>intmain(){  intyear,month,day,x,a;  intye=2010;  intsum=0;  inti[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//建立平年各月份天数的数组  intj[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};//建立闰年各月份天数的数......
  • 每日编程一小时(第五天)
    一.问题描述输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字二.设计思路1.创建一个字符数组2.输入一个字符串(数)3.利用switch来输出每一个字符所对应的读音三.流程图  四.代码实现#include<iostream>usingnamespacestd;intmain(){chara[10......
  • c++练习打卡(7)
    银行存钱银行一年整存零取的利息每月0.0063,某人存了一笔钱,每年年底取1000,五年取完,问他存了多少?流程图:伪代码:源代码:#include<stdio.h>intmain(){ doublemoney=0.0; for(inti=0;i<5;i++){ money=(money+1000.0)/(1+12*0.0063); }printf("%0.2lf",money); return0;} ......
  • 打卡第三天
    一、 1.先定义一个变量year,将输入的变量存放到year中2.验证year是否满足能被四整除而不能被一百整除或者能被四百整除二、三、#include<iostream>usingnamespacestd;intmain(){ intyear; boolisrunnian; cout<<"年份是:"; cin>>year; isrunnian=((year%4==0&&year%100......