📄 selectsort.cpp
字号:
#include <iostream.h> //简单选择排序
#include <stdlib.h>
void output(int table[],int n); //输出数组的n个元素,略
void swap(int table[],int i,int j); //交换,略
void create(int table[],int n) //n个数存入table数组
{
// randomize(); //初始化随机数序列
for(int i=0;i<n;i++)
table[i]=rand() % 50; //产生一个0~100之间的随机数
}
void selectsort(int table[],int n) //对table数组元素进行选择排序
{
for(int i=0;i<n-1;i++) //n-1趟排序
{
int min=i;
for(int j=i;j<n;j++) //在从table[i]开始的部分数组元素中
if(table[j]<table[min]) //寻找最小值
min=j; //min记下本趟最小值的下标
if(i!=min)
swap(table,i,min); //本趟最小值交换到左边
cout<<i<<"~"<<n-1<<": min["<<min<<"]="<<table[min]<<" ";
output(table,n);
}
}
void main()
{
const int N=8;
int a[N];
create(a,N);
cout<<"N="<<N;
output(a,N);
selectsort(a,N);
}
/*程序运行结果 :
n=8 table: 18 6 6 16 2 13 3 11
0~7: min[4]=2 table: 2 6 6 16 18 13 3 11
1~7: min[6]=3 table: 2 3 6 16 18 13 6 11
2~7: min[2]=6 table: 2 3 6 16 18 13 6 11
3~7: min[6]=6 table: 2 3 6 6 18 13 16 11
4~7: min[7]=11 table: 2 3 6 6 11 13 16 18
5~7: min[5]=13 table: 2 3 6 6 11 13 16 18
6~7: min[6]=16 table: 2 3 6 6 11 13 16 18
n=8 table: 41 17 34 0 19 24 28 8
0~7: min[3]=41 table: 0 17 34 41 19 24 28 8
1~7: min[7]=17 table: 0 8 34 41 19 24 28 17
2~7: min[7]=34 table: 0 8 17 41 19 24 28 34
3~7: min[4]=41 table: 0 8 17 19 41 24 28 34
4~7: min[5]=41 table: 0 8 17 19 24 41 28 34
5~7: min[6]=41 table: 0 8 17 19 24 28 41 34
6~7: min[7]=41 table: 0 8 17 19 24 28 34 41
*/
void output(int table[],int n) //输出数组的n个元素
{
cout<<" table: ";
for(int i=0;i<n;i++)
cout<<table[i]<<" ";
cout<<"\n";
}
void swap(int table[],int i,int j) //交换table[i]、table[j]的值
{
int temp=table[i];
table[i]=table[j];
table[j]=temp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -