选择排序和冒泡排序的C++和C
更新时间:2023-04-22 08:38:01 阅读量: 实用文档 文档下载
C选择排序:
#include <stdio.h>
#define N 10
main()
{ int i,j,min,key,a[N];
//input data
printf("please input ten num:\n");
for(i=0;i<N;i++)
{ printf("a[%d]=",i);
scanf("%d\t",&a[i]);}
for(i=0;i<N;i++)
{
printf("%d\t",a[i]);
}
/*sort ten num*/
for(i=0;i<N-1;i++)
{
min=i;
for(j=1;j<N;j++)
{
if(a[min]>a[j]) {min=j;//记下最小元素的下标。
/*********交换元素*********/
key=a[i];
a[i]=a[min];
a[min]=key;}
else continue;
}
}
/*output data*/
printf("After sorted \n");
for(i=0;i<N;i++) printf("%d\t",a[i]);
system("PAUSE");
return 0;
}
C冒泡排序:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
#define n 4
int _tmain(int argc, _TCHAR* argv[])
{ int x[n],i=0;
printf("请输入%d个整数:\n",n);
for(i=0;i<n;)
{
scanf_s("%d ",&x[i]);
++i;
}
int j, k, h, t;
for (h=n-1; h>0; h=k) /*循环到没有比较范围*/
{ for (j=0,k=0;j<h;j++) /*每次预置k=0,循环扫描后更新k*/
{ if (*(x+j)>*(x+j+1)) /*大的放在后面,小的放到前面*/
{ t = *(x+j);
*(x+j) = *(x+j+1);
*(x+j+1) = t; /*完成交换*/
k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/
}
}
}
printf("\n排序后的顺序为:\n");
for(i=0;i<n;i++)
printf("%d\t",x[i]);
system("PAUSE");
return 0;
}
C++选择排序:
#include<iostream>
using namespace std;
int main()
{ int num[10] = {9,8,10,3,4,6,4,7,2,1};
int m;
cout<<"排序前:"<<endl;
for (m=0;m<10;m++)
{
cout<<num[m]<<" ";
}
for (int i=0;i < 10;i++)
{ int pos = i;
for (int j=i;j< 10;j++)
{ if (num[pos] > num[j])
{
pos =j;
}
}
int tem;
tem = num[pos];
num[pos] = num[i];
num[i] = tem;
}
cout<<endl<<"排序后:"<<endl;
for (int m = 0;m<10;m++)
{
cout<<num[m]<<" ";
}
system("PAUSE");
return 0;
}
/*选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量,接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标赋给临时变量,最后,在二层循环退出后,如果临时变量改变,则说明,有比当前外层循环位置更小的元素,需要将这两个元素交换.*/
C++冒泡排序:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
#define LEN 10
int _tmain(int argc, _TCHAR* argv[])
{ int nArray[LEN];
for(int i=0;i<LEN;i++) nArray[i]=LEN-i;
cout<<"原始数据为:"<<endl;
for(int i=0;i<LEN;i++)
cout<<nArray[i]<<" ";
cout<<endl;
//开始冒泡
int temp;
for(int i=LEN-1;i>0;i--)
for(int j=0;j<i;j++)
{ if(nArray[j]>nArray[j+1])
{ temp=nArray[j];
nArray[j]=nArray[j+1];
nArray[j+1]=temp;
}
}
//结束冒泡
cout<<"排序结果:"<<endl;
for(int i=0;i<LEN;i++)cout<<nArray[i]<<" ";
system("PAUSE");
return 0;
}
正在阅读:
选择排序和冒泡排序的C++和C04-22
美术磨课03-11
中国铁建中铁XX局XX有限公司日常管理办法集锦科技开发管理办法05-21
2018-2024年中国袜子产业深度调研与发展前景研究报告(目录) - 图文03-16
六一活动活动方案05-29
2015年少先队入队仪式主持词05-11
疯狂的一天作文600字07-09
我和妈妈的战争作文1000字07-07
51单片机控制交通灯设计06-09
LED线条灯控制器同步说明书03-01
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 排序
- C++
- 冒泡
- 选择
- 浪漫见证150年-依波路手表150周年中国地区巡回展启动仪式策划方
- 八年级物理上册第一章检测试题
- 2022年1—5月半月谈时事政治
- 九年级中考化学高频知识点专题复习练习--碳和碳的氧化物专题练习
- 初中几何证明题思路
- 2014考研英语阅读题源15篇
- 《国际脑血管病杂志》2008年征订启事
- 三星WW60J6210DW洗衣机残渣过滤器清洁方法
- 检验精米机和全自动精米机价格
- AE水墨特效制作笔记
- 乐业一中学习贯彻党的十八届三中全会精1
- 电网调度运行人员试题库(选择题)
- 基于CPLD的光伏逆变器锁相及保护电路设计
- 胸腰椎骨折内固定术后椎弓根钉折断的原因分析
- 全国儿童文学报刊网上投稿地址大全
- 第四章 刚体的转动
- 2014-2015学年第一学期期中调研卷试卷分析
- 土生土长--以夯土为核心的自然建造研究
- 美国-奖学金-美国留学本科奖学金申请种类解析
- 铰链四杆机构的组成和分类