1、实现过程
定义整型数组src,长度为10,初始化为{11,12,47,24,49,69,90,89,18,39}。之后用嵌套for循环比较相邻两个元素的大小,如果前一个元素大于后一个,不做任何操作;反之,相互交换。在交换的过程中需要临时变量暂时存放第一个元素的值,命名为temp。
2、实现代码
- 选择排序
#include <iostream>
using namespace std;
int main()
{
int src[10] = {11,12,47,24,49,69,90,89,18,39};//一维数组中包含10个整数
//从大到小排序
for(int i = 0; i < 10; i++)
{
for(int j = i+1; j < 10; j++)
{
if(src[i]<src[j]) //如果前一个元素小于后一个元素
{
int temp; //临时变量
temp = src[i];
src[i] = src[j]; //大的元素到前一个位置
src[j] = temp; //小的元素到后一个位置
}
}
}
// 输出各元素
for(int k = 0; k < 10; k++)
cout<<src[k]<<endl;
return 0;
}
- 冒泡排序
#include <iostream>
using namespace std;
int main()
{
int src[10] = {11,12,47,24,49,69,90,89,18,39};//一维数组中包含10个整数
//从大到小排序
for(int i = 0; i < 10; i++)
{
for(int j = 0; j < 10 - i - 1; j++)
{
if(src[j]<src[j+1]) //如果前一个元素小于后一个元素
{
int temp; //临时变量
temp = src[j];
src[j] = src[j+1]; //大的元素到前一个位置
src[j+1] = temp; //小的元素到后一个位置
}
}
}
// 输出各元素
for(int k = 0; k < 10; k++)
cout<<src[k]<<endl;
return 0;
}
3、额外学习VBS
Sub test()
Dim arr, Select_Sort
arr = Array(5, 8, 5, 2, 9)
' 冒泡排序
For i = 0 To UBound(arr)
For j = 0 To UBound(arr) - i - 1
Debug.Print arr(i); "=="; arr(j + 1)
Debug.Print j; "=="; j + 1
If arr(j) > arr(j + 1) Then vSwap = arr(j): arr(j) = arr(j + 1): arr(j + 1) = vSwap
Next
Next
For i = 0 To UBound(arr)
Debug.Print arr(i)
Next
' 选择排序
Select_Sort = Array(5, 8, 5, 2, 9)
' 选择排序
For i = 0 To UBound(Select_Sort)
For j = i + 1 To UBound(Select_Sort)
Debug.Print Select_Sort(i); "=="; Select_Sort(j)
Debug.Print i; "=="; j
If Select_Sort(i) > Select_Sort(j) Then vSwap = Select_Sort(i): Select_Sort(i) = Select_Sort(j): Select_Sort(j) = vSwap
Next
Next
For i = 0 To UBound(Select_Sort)
Debug.Print Select_Sort(i)
Next
End Sub