C52-选择排序
原题链接:28705.NoteSC++2025-04-12 12:05:06
发布于:江苏
一、车厢重组
#include<iostream>
using namespace std;
int a[1005], cnt;
int main(){
int n;
cin >> n;
for (int i=1; i<=n; i++ ) cin>>a[i];
//n个数需要n-1趟
for (int i=1; i<=n-1; i++){
//比较次数
for (int j=1; j<=n-i; j++){
if (a[j] > a[j+1]){
swap(a[j], a[j+1]);
cnt++;
}
}
}
cout << cnt;
// for (int i=1; i<=n; i++) cout<<a[i]<<' ';
return 0;
}
二、选择排序
#include<bits/stdc++.h>
using namespace std;
int a[10005];
int n;
void print(){
for (int i=1; i<=n; i++)
cout << a[i] << ' ';
cout << endl;
}
void xuanze_sort(){
// n个数字需要比较n-1趟
for (int i=1; i<=n-1; i++){
//每一趟找最小值, 与未排序的是第一个数字 进行交换
//打擂台找最值
int mini = i; //最小值索引
for (int j=i; j<=n; j++){
if (a[j] < a[mini]){
mini = j;
}
}
swap(a[i], a[mini]);
print();
}
}
int main(){
srand(time(0)); //设置随机数的种子为时间
// cout << rand() << endl; //伪随机
cin >> n;
for (int i=1; i<=n; i++){ //1 100
a[i] = rand()%100 + 1; //(0, 99)+1
}
print();
//选择排序
xuanze_sort();
// bubble_sort();
print();
return 0;
}
//选择排序 select
//random
作业练习
至少完成三题
#欢乐赛45
这里空空如也
有帮助,赞一个