选择排序c++代码(编一个C++程序 创建一个选择排序法的函数模板sort 并在main()执行)

本文目录
- 编一个C++程序 创建一个选择排序法的函数模板sort 并在main()执行
- C++编程:将10个整数按从小到大的顺序排列
- 写一个c++程序,读取txt然后排序
- 求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果
- c++编写一个函数,用选择法对10个整数的数组进行排序
- 求解:C++ 用选择排序法对n个整数排序(降序)
- c++编程问题:用选择法对 10 个整数从小到大排序
编一个C++程序 创建一个选择排序法的函数模板sort 并在main()执行
写了两段代码,第一个是用冒泡排序法做的,第二个是快速排序法
#include 《iostream》
using namespace std;
//冒泡排序法
template《typename T》
void sort(T *data, int n)
{
int i, j;
T hold;
for (i = 0; i 《 n - 1; i++)
{
for (j = 0; j 《 n -1; j++)
{
if (data)
{
hold = data;
data;
data = hold;
}
}
}
}
int main()
{
int i;
int a = {3, 2, 1, 5, 8 ,7};
char b = {’b’, ’c’, ’a’, ’p’, ’g’};
double c = {1.2, 2.1, 1.1, 1.0};
sort(a, 6);
for (i = 0; i 《 6; i++)
cout 《《 a 《《 " ";
cout 《《 endl;
sort(b, 5);
for (i = 0; i 《 5; i++)
cout 《《 b 《《 " ";
cout 《《 endl;
sort(c, 4);
for (i = 0; i 《 4; i++)
cout 《《 c 《《 " ";
cout 《《 endl;
return 0;
}
#include 《iostream》
using namespace std;
//快速排序法
template《typename T》
void Quick_sort(T *data_ptr, int left, int right)
{
int low(left), high(right);
T middle, temp;
middle = data_ptr; //随机产生一个大于等于left且小于等于right的数
do{
while ((data_ptr 《 middle) && (low 《 right)) //左扫面找出大于middle的数
low++;
while ((data_ptr) 》 middle && (high 》 left)) //右扫面找出小于middle的数
high--;
//数据交换
if (low 《= high)
{
temp = data_ptr;
data_ptr;
data_ptr = temp;
low++;
high--;
}
}while(low 《= high); //当下标交错时停止,结束一次排序
//当左边有部分值的时候(left《high),递归左边
if (left 《 high)
Quick_sort(data_ptr, left, high);
//当右边有部分值的时候(right 》 low),递归右边
if (right 》 low)
Quick_sort(data_ptr, low, right);
}
int main()
{
int i;
int a = {3, 2, 1, 5, 8 ,7};
char b = {’b’, ’c’, ’a’, ’p’, ’g’};
double c = {1.2, 2.1, 1.1, 1.0};
Quick_sort(a, 0, 5);
for (i = 0; i 《 6; i++)
cout 《《 a 《《 " ";
cout 《《 endl;
Quick_sort(b, 0, 4);
for (i = 0; i 《 5; i++)
cout 《《 b 《《 " ";
cout 《《 endl;
Quick_sort(c, 0, 3);
for (i = 0; i 《 4; i++)
cout 《《 c 《《 " ";
cout 《《 endl;
return 0;
}
C++编程:将10个整数按从小到大的顺序排列
可将10个数放入数组,用冒泡排序将其按升序进行排序。
#include 《iostream》
using namespace std;
// 冒泡排序长度为len的数组dat(升序)
void sort(int *dat, int len)
{
int tem;
for (int i = 0; i 《 len; i++)
{
for (int j = 0; j 《 len - i - 1; j++) // 比较一次后,则可少比较一个
if (dat) // 大数在前面,则交换
{
tem = dat;
dat;
dat = tem;
}
}
}
void output(int *dat, int len) // 输出数据
{
for (int i = 0; i 《 len; i++)
cout 《《 ’ ’ 《《 dat;
cout 《《 endl;
}
int main()
{
int a = {9, 8, 3, 5, 7, 1, 6, 4, 0, 2};
sort(a, 10);
output(a, 10);
return 0;
}
写一个c++程序,读取txt然后排序
#include《iostream》
#include《fstream》
using namespace std;
void selectsort(int arr,int n)
{
int i,j,min,t;
for(i=0;i《n-1;i++)
{
min=i;
for(j=i+1;j《n;j++)
{
if(arr)
min=j;
}
if(min!=i)
{
t=arr;
arr;
arr=t;
}
}
}
void bubblesort(int arr,int n)
{
int i,j,t;
for(i=0;i《n-1;i++)
{
for(j=0;j《n-1-i;j++)
{
if(arr)
{
t=arr;
arr;
arr=t;
}
}
}
}
void insertsort(int arr,int n)
{
int i,j,k,t;
for(i=1;i《n;i++)
{
for(j=0;j《i;j++)
{
if(arr)
{
t=arr;
for(k=i-1;k》=j;k--)
arr;
arr=t;
break;
}
}
}
}
void readdata(char filename,int n)
{
int i;
ifstream inf(filename,ios_base::in);
for(i=0;i《n;i++)
inf》》arr;
inf.close();
}
void output(int arr,int n)
{
int i;
for(i=0;i《n-1;i++)
cout《《arr《《’ ’;
cout《《arr《《endl;
}
int main()
{
char filename;
int n=20,arr;
cout《《"请输入包含数据的文件的路径:";
cin》》filename;
readdata(filename,arr,n);
//选择排序
selectsort(arr,n);
output(arr,n);
readdata(filename,arr,n);
//冒泡排序
bubblesort(arr,n);
output(arr,n);
readdata(filename,arr,n);
//插入排序
insertsort(arr,n);
output(arr,n);
return 0;
}
求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果
方法步骤如下:
1.首先,定义一个结构,包括数值、排名和序号。
2.定义结构数组变量d,保存所有整数信息。
3.接下来,定义一个自定义函数来比较整数序列中任意两个整数的大小。
4.定义一个自定义函数,比较整数序列中任意两个数字的序数大小。
5.在主函数中,首先定义两个整数,并保存整数个数和排名计数。
6.使用for循环输入序列中的整数,并设置序列中每个整数的序列号。
7.按整数大小排序的序列中的所有数值。
8.将好排序数值添加排序编号。
9.最后,根据索引输出所有整数的排序。
注意:
(1)交换排序:参照求最大值和最小值的思想,按升序排序的基本过程是将第一个数字与下一个数字进行比较。如果后面的数字很小,那么交换和第一个数字的位置。否则,不要交换。
(2)气泡排序:交换和重复两个相邻数字的过程。一般来说,如果有n个数字要排序,则需要n-1起泡。
(3)选择排序:在交换顺序的基础上,找出剩余数量的最大值,并与地面上的I+1数量进行交换,使得每轮比较中只有一次交换操作,该算法最多只有n-1个交换操作。
c++编写一个函数,用选择法对10个整数的数组进行排序
#include《stdio.h》//标准输入输出函数调用需要此头文件、就是那个printf和scanf函数要用的
void main()//主函数
{int i,j,min,temp,a;
printf("请输入:\n"); //屏幕输出引号内的字符然后换行
for(i=1;i《=10;i++) //从键盘上循环输入10个数据
{printf("a=",i);
scanf("%d",&a);} //读取数据函数
printf("\n"); //换行
for(i=1;i《=9;i++) //比较10个数据
{min=i; //每次比较的最小数据赋给min
for(j=i+1;j《=10;j++) //比较循环控制
if (a) min=j; //大小数值判断
temp=a;
a里存放的最小数值
a=temp;}
printf("\n从大到小排列是:\n"); //输出字符
for(i=10;i》=1;i--) //循环输出按大小排列的数据
printf("%5d",a);
printf("\n");//每输出一个数据换行
}
求解:C++ 用选择排序法对n个整数排序(降序)
#include 《iostream》
using namespace std;
int main()
{
int a;
int i,j,t,min;
cout《《"input 4 numbers:"《《endl;
for(i=0;i《4;i++)
cin》》a; //输入四个数
for(i=0;i《=3;i++)//外层循环,每个数都要比较
{
min=i;
for(j=i+1;j《=4;j++)//内层循环,把外层的一个数分别和他后面的数比较一遍
{
if(a)// 如果这个数比他后面的某一个小,就交换他们,这样每一轮比较就把剩余的 最大的数放到最前面已经排序好的队列
{
t=a;
a;
a=t;}
}
}
cout《《"the sorted numbers:"《《endl;
for(i=0;i《4;i++)//输出
cout《《a《《" ";
cout《《endl;
return 0;
}
c++编程问题:用选择法对 10 个整数从小到大排序
#include 《iostream》
using namespace std;
void main()
{
int i, j, t, k;
int a = {8,9,6,7,4,5,2,0,1,-7};
for (i = 0; i 《 10; i++)
{
k = i;
for (j = i + 1; j 《 10; j++)
if (a)
k = j;
if (k != i)
{
t = a;
a;
a = t;
}
}
cout 《《 "排序以后:\n";
for (i = 0; i 《 10; i++)
cout 《《 a 《《 ’ ’;
cout 《《 endl;
}

更多文章:
jsp对数据库的增删改查(jsp做一个最简单的,连接数据库,实现增删改查人员姓名的功能一定要非常简单的那种)
2026年2月16日 06:00
java编写简易计算器程序设计(用java编写一个简单的计算器类)
2026年8月24日 01:45
怎么交java文件作业(关于java中的类和对象等,急!要交作业!)
2026年4月28日 21:45
易语言是什么?E语言(易语言)编写浏览器怎样实现自动跳转网页
2025年10月18日 15:15
rowspan不是已知的css属性名(请教CSS,鼠标移动后变色)
2026年9月9日 10:30
pascal语言用于(详细比较一下批处理与Pascal的优缺点)
2026年2月25日 00:00
springboot启动慢(spring-boot 项目启动过慢问题)
2025年12月2日 19:00
奔驰activity(为什么宝马x3与奔驰Glc销量差距这么大)
2026年7月19日 06:45
vocabulary怎么读音发音(vocabulary是啥意思)
2025年12月29日 22:00
python正则表达式编译数字(python正则表达式以数字3开头的)
2026年3月26日 09:15
javascript上传文件(JavaScript怎么上传图片)
2026年9月19日 21:00






![grep使用正则表达式(正则表达式:grep “^[[:space :]]*$” 表示什么)](/static/images/nopic/26.jpg)

