简单排序方法

用简单排序方式将数组按由小到大的顺序序列

一、冒泡排序

相邻两数之间的比较

#include 
using namespace std;
int main(){
   int num[5]={3,1,7,5,2};
   int temp=0;
   for(int i=0;i<5;i++)
   for(int j=i+1;j<5;j++)
   if(num[i]>num[j]){
      temp=num[i];
      num[i]=num[j];
      num[j]=temp;
   }
   for(int i=0;i<5;i++)
   printf("%d ",num[i]);
   return 0;
}

二、选择排序

选择一个最小值的标准进行排序

#include 
using namespace std;
int main(){
   int num[5]={3,1,7,5,2};
   int temp=0,k=0;
   for(int i=0;i<5;i++)
   {
       k=i;//记录最小值的下标
   for(int j=i;j<5;j++)
   if(num[j]<num[k]) k=j;//找出当前最小值的下标
   //由小到大排序
      temp=num[i];
      num[i]=num[k];
      num[k]=temp;
   }
   for(int i=0;i<5;i++)
   printf("%d ",num[i]);
   return 0;
}

三、插入排序

要求排序序列存在有序部分

#include 
using namespace std;
int main(){
   int t=0,j=0;
   int num[5]={3,1,7,5,2};
   for(int i=1;i<5;++i){//趟数
      t=num[i];j=i;//记录下标及元素值
      while(j>0&&t<num[j-1]){//当前元素比前一个元素小
         num[j]=num[j-1];//元素后移
         j--;
      }
      num[j]=t;//插入
   }
   for(int i=0;i<5;i++)
   cout<<num[i]<<" ";
   return 0;
}

你可能感兴趣的:(小白进阶,算法)