應用C++的根本算法完成十個數排序。本站提示廣大學習愛好者:(應用C++的根本算法完成十個數排序)文章只能為提供參考,不一定能成為您想要的結果。以下是應用C++的根本算法完成十個數排序正文
冒泡排序法
道理:
它反復地訪問過要排序的數列,一次比擬兩個元素,假如他們的次序毛病就把他們交流過去。訪問數列的任務是反復地停止直到沒有再須要交流,也就是說該數列曾經排序完成。
冒泡排序算法的運作以下:
1.比擬相鄰的元素。假如第一個比第二個年夜,就交流他們兩個。
2.對每對相鄰元素作異樣的任務,從開端第一對到開頭的最初一對。在這一點,最初的元素應當會是最年夜的數。
3.針對一切的元素反復以上的步調,除最初一個。
4.連續每次對愈來愈少的元素反復下面的步調,直到沒有任何一對數字須要比擬。
示例代碼:
#include<iostream>
using namespace std;
int main(){
//依照升序分列
int a[10]={15,13,2,3,6,5,88,-3,30,40};
int i,j,t;
for(i=0;i<9;i++){
for(j=0;j<(9-i);j++){
if(a[j]>a[j+1]){
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}//經由過程每次輪回,沉下去一個最年夜的數
}//一種10個數,沉下去9個最年夜的數,便可以排序了
for(i=0;i<10;i++){
cout<<a[i]<<'\t';
}
cout<<endl;
return 0;
}
剖析:經由過程兩兩比擬,第一次排序,會將最年夜的數88放到最初面a[9]中。。。。第九趟,a[1]=2,然後就排序完成
選擇排序法
道理:
選擇排序的根本思惟是:每趟在n-i+1(i=1,2,…n-1)個記載當選取症結字最小的記載作為有序序列中第i個記載。
第i趟簡略選擇排序是指經由過程n-i次症結字的比擬,從n-i+1個記載當選出症結字最小的記載,並和第i個記載停止交流。共需停止i-1趟比擬,直到一切記載排序完成為止。例如:停止第i趟選擇時,從以後候選記載當選出症結字最小的k號記載,並和第i個記載停止交流。
示例代碼:
#include<iostream>
using namespace std;
int main(){
//依照升序分列
int a[10]={15,13,2,3,6,5,88,-3,30,40};
int i,j,t,k=0;
for(i=0;i<9;i++){
k=i;
for(j=i+1;j<10;j++){
if(a[j]<a[k]){
k=j;
}
}
t=a[k];
a[k]=a[i];
a[i]=t;
}
for(i=0;i<10;i++){
cout<<a[i]<<'\t';
}
cout<<endl;
return 0;
}