第67课 选择排序 例67.1 《小学生C++编程入门》
生活随笔
收集整理的這篇文章主要介紹了
第67课 选择排序 例67.1 《小学生C++编程入门》
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<iostream>
using namespace std;
int a[10001];
int main()
{int i,j,n;cin>>n;for(i=1;i<=n;i++) cin>>a[i];for(i=1;i<n;i++) //進行第i趟排序 for(j=i+1;j<=n;j++) //第i趟要比較的次數 if(a[i]>a[j]) swap(a[i],a[j]); for(i=1;i<=n;i++)cout<<a[i]<<" ";return 0;
}
/* 1. 選擇排序 (1) 基本思想:每一趟從待排序的數據元素中選出最小(或最大)的一個元素, 順序放在待排序的數列的最前,直到全部待排序的數據元素排完。 (2)排序過程:【示例】: 初 始 關鍵字 [49 38 65 97 76 13 27 49] 第一趟排序后 13[49 65 97 76 38 27 49] 第二趟排序后 13 27[65 97 76 49 38 49] 第三趟排序后 13 27 38 [97 76 65 49 49] 第四趟排序后 13 27 38 49 [97 76 65 49] 第五趟排序后 13 27 38 49 49 [97 76 65] 第六趟排序后 13 27 38 49 49 65 [97 76] 第七趟排序后 13 27 38 49 49 65 76 [97] 最后排序結果 13 27 38 49 49 65 76 97 */ #include<iostream> using namespace std; const int MAXN=10001; int main() { int n,k,i,j;float temp,a[MAXN];//輸入n個數cin>>n;for (i=0;i<n;i++){cin>>a[i]; }for (i=0;i<n;i++) //i控制當前序列中最小值存放的數據位置 n{k=i;//在當前無序區a[i..n]中選最小的元素a[k]for (j=i+1;j<n;j++)if (a[j]<a[k]) k=j;//交換a[i]和a[k],將當前最小值放到a[i]位置if ( k != i ) {temp=a[i];a[i]=a[k];a[k]=temp;}}for (i=0;i<n;i++){cout<<a[i]<<" ";}return 0; }
/* 1. 選擇排序 (1) 基本思想:每一趟從待排序的數據元素中選出最小(或最大)的一個元素, 順序放在待排序的數列的最前,直到全部待排序的數據元素排完。 (2)排序過程:【示例】: 初 始 關鍵字 [49 38 65 97 76 13 27 49] 第一趟排序后 13[49 65 97 76 38 27 49] 第二趟排序后 13 27[65 97 76 49 38 49] 第三趟排序后 13 27 38 [97 76 65 49 49] 第四趟排序后 13 27 38 49 [97 76 65 49] 第五趟排序后 13 27 38 49 49 [97 76 65] 第六趟排序后 13 27 38 49 49 65 [97 76] 第七趟排序后 13 27 38 49 49 65 76 [97] 最后排序結果 13 27 38 49 49 65 76 97 */ #include<iostream> using namespace std; const int MAXN=10001; int main() { int n,k,i,j;float temp,a[MAXN];//輸入n個數cin>>n;for (i=0;i<n;i++){cin>>a[i]; }for (i=0;i<n;i++) //i控制當前序列中最小值存放的數據位置 n{k=i;//在當前無序區a[i..n]中選最小的元素a[k]for (j=i+1;j<n;j++)if (a[j]<a[k]) k=j;//交換a[i]和a[k],將當前最小值放到a[i]位置if ( k != i ) {temp=a[i];a[i]=a[k];a[k]=temp;}}for (i=0;i<n;i++){cout<<a[i]<<" ";}return 0; }
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的第67课 选择排序 例67.1 《小学生C++编程入门》的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js网页文件资源加载器
- 下一篇: 【原型设计】第四节:Axure RP9