码迷,mamicode.com
首页 > 编程语言 > 详细

排序小札记

时间:2017-11-02 22:05:58      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:select   sort   --   efi   insert   有序   ==   ace   temp   

   直接排序:

#include <iostream>
using namespace std;

#define Maxsize 1024

void InsertSort(int arr[], int n)
{
    int temp, j;
    for(int i=1; i<n; ++i)
    {
        temp=arr[i];
        j=i-1;//由于有序序列与无序序列是相邻的,i是无序序列的最左边的元素,i-1则是有序序列中最右边的元素。
        while((j>=0) && (temp<arr[j]))
        {
            arr[j+1]=arr[j];
            --j;
        }
        arr[j+1]=temp;//精妙之处
    }
}

int main()
{
    int n;
    int numbers[Maxsize];
    while(cin >> n)
    {
        for(int i=0; i<n; ++i)
            cin >> numbers[i];
        InsertSort(numbers, n);
        for(int i=0; i<n; ++i)
            cout << numbers[i] << ‘ ‘;
        cout << endl;
    }
    return 0;
}

   

   选择排序:

#include <iostream>
using namespace std;

#define Maxsize 1024

void SelectSort(int arr[], int n)
{
    int k;
    int temp;
    for(int i=0; i<n; ++i)
    {
        k=i;
        for(int j=i+1; j<n; ++j)
            if(arr[k]>arr[j])
                k=j;
        temp=arr[i];
        arr[i]=arr[k];
        arr[k]=temp;
    }
}

int main()
{
    int n;
    int numbers[Maxsize];
    while(cin >> n)
    {
        for(int i=0; i<n; ++i)
            cin >> numbers[i];
        SelectSort(numbers, n);
        for(int i=0; i<n; ++i)
            cout << numbers[i] << ‘ ‘;
        cout << endl;
    }
    return 0;
}

  

   冒泡排序:

#include <iostream>
using namespace std;

#define Maxsize 1024

void BubleSort(int arr[], int n)
{
    int flag, temp;
    for(int i=n-1; i>=1; --i)
    {
        flag=0;
        for(int j=1; j<=i; ++j)
            if(arr[j-1] > arr[j])
            {
                temp=arr[j];
                arr[j]=arr[j-1];
                arr[j-1]=temp;

                flag=1;
            }
        if(flag==0)
            return;//经典之处
    }
}

int main()
{
    int n;
    int numbers[Maxsize];
    while(cin >> n)
    {
        for(int i=0; i<n; ++i)
            cin >> numbers[i];
        BubleSort(numbers, n);
        for(int i=0; i<n; ++i)
            cout << numbers[i] << ‘ ‘;
        cout << endl;
    }
    return 0;
}

  

排序小札记

标签:select   sort   --   efi   insert   有序   ==   ace   temp   

原文地址:http://www.cnblogs.com/CoSoBo/p/7774598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!