题目描述
已知简单选择排序的部分代码如下,勿改动,请补充实现简单选择排序函数。要求:输出每趟排序序列。
#include
using namespace std;
const int MaxSize=100;
class List
{
private:
int r[MaxSize+1];
int n;
public:
List(){n=0;} //empty list
void InsertR(int k) //表尾插入
{ r[++n]=k;}
void Display(); //display
void SelectSort(); //SelectSort
};
void List::Display()
{
for(int i=1;i<=n;i++)
cout<
}
int main()
{
List L;
while(1)
{
int k;
cin>>k;
if(!k) break;
L.InsertR(k);
}
//L.Display();
L.SelectSort();
// L.Display();
return 0;
}
输入
输出
样例输入
12 21 32 2 4 24 21 432 23 9 0
样例输出
2 21 32 12 4 24 21 432 23 9
2 4 32 12 21 24 21 432 23 9
2 4 9 12 21 24 21 432 23 32
2 4 9 12 21 24 21 432 23 32
2 4 9 12 21 24 21 432 23 32
2 4 9 12 21 21 24 432 23 32
2 4 9 12 21 21 23 432 24 32
2 4 9 12 21 21 23 24 432 32
2 4 9 12 21 21 23 24 32 432
提示
来源
提交
import java.util.Scanner;class Ilist{int[] r;int n;int MaxSize = 100;public Ilist() {n = 0;r = new int[MaxSize];}void InsertR(int k){r[++n] = k;}void Display(){// System.out.print("Data:");for (int i = 1; i <= n; i++) {System.out.print(r[i]+" ");}System.out.println();}void SelectSort(){for (int i = 1; i < n; i++) {int index = i;for (int j = i + 1; j <= n; j++) {if (r[index] > r[j])index = j;}if (index != i){int temp = r[i];r[i] = r[index];r[index] = temp;}Display();}}}public class Main {public static void main(String[] args) {Ilist ilist = new Ilist();Scanner scanner = new Scanner(System.in);int key;while(true){int x = scanner.nextInt();if(x == 0)break;ilist.InsertR(x);}ilist.SelectSort();}}
