[C++] 插入排序 →→→→→进入此内容的聊天室

来自 , 2020-05-05, 写在 C++, 查看 132 次.
URL http://www.code666.cn/view/d860edd1
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. void InsertionSort(int a[],int n)
  4. {
  5.     for(int i=1;i<n;i++)// 类似抓扑克牌排序
  6.     {
  7.         int now=a[i];// 右手抓到一张扑克牌, 拿在左手上的牌总是排序好的
  8.         int j=i-1;
  9.         for(;j>=0&&a[j]>now ;j--)// 将抓到的牌与手牌从右向左进行比较
  10.             a[j+1]=a[j];// 如果该手牌比抓到的牌大,就将其右移
  11.         a[j+1]=now;// 直到该手牌比抓到的牌小(或二者相等),将抓到的牌插入到该手牌右边(相等元素的相对次序未变,所以插入排序是稳定的)
  12.     }
  13. }
  14. int main ()
  15. {
  16.     int N , i;
  17.     cin>>N;
  18.     int a[N];
  19.     for(i=0; i<N; i++)
  20.         cin>>a[i];
  21.     InsertionSort(a,N);
  22.     cout<<a[0];
  23.     for(i=1; i<N; i++)
  24.         cout<<" "<<a[i];
  25.     return 0;
  26. }

回复 "插入排序"

这儿你可以回复上面这条便签

captcha