Кірістіруді сұрыптау


Күрделілік дәрежесі орта
Жиі кіреді Accenture Cisco Dell Грейфтерлер Арша желілері MAQ Veritas
Array Сұрыптау

Енгізуді сұрыптау алгоритмін пайдаланып берілген сұрыпталмаған массивті сұрыптаңыз.

Кіру: {} 9,5,1,6,11,8,4

Шығару: {} 1,4,5,6,8,9,11

теория

  • Енгізу Сұрыптау сандарды біз адамдар сияқты сандық объектілердің жиынтығын сұрыптайтын сияқты сұрыптайды (бұрынғы карталар)
  • Сандар сұрыпталмаған жиымнан (оң жақ қатар) сұрыпталған жиымдағы орынға (сол жақ қатар) сол жақ ішкі массив сұрыпталған күйінде қалатындай етіп алынады.
  • Бұл қадамға негізделген әдіс.

Кірістіру сұрыптау алгоритмі

  1. Сұрыпталмаған жиымдағы бірінші элементті таңдаңыз / белгілеңіз, оны сұрыпталған массивтің дұрыс орнына жылжытыңыз.
  2. Маркерді сұрыпталмаған массивтің келесі элементіне ауыстырыңыз.

Кірістіруді сұрыптау

C ++ бағдарламасы

#include <iostream>
using namespace std;

void insertSort(int arr[],int n)
{
    int i,j,save;

    for(int i=1;i<n;i++)
    {
        j = i-1;
        save = arr[i];
        
        // look for correct position of arr[i]
        while(j>=0 && arr[j] > save)
        {
            // shifting array elements towards the right
            arr[j+1] = arr[j];
            j--;
        }
        // place arr[i] at the correct position
        arr[j+1] = save;
    }
}

int main()
{
    
    int arr[] = {9,5,1,6,11,8,4};
    int n = sizeof(arr)/sizeof(arr[0]);

    insertSort(arr,n);

    for(int i=0;i<n;i++)
    cout<<arr[i]<<" ";
    
    return 0;
}

шығыс

1 4 5 6 8 9 11

Java бағдарламасы

class iSort
{
    static void insertSort(int arr[])
    {
        int n = arr.length;
        int i,j,save;

        for(i=1;i<n;i++)
        {
            j = i-1;
            save = arr[i];

            // look for correct position of arr[i]
            while(j >= 0 && arr[j] > save)
            {
                // shifting array elements towards the right
                arr[j+1] = arr[j];
                j--;
            }
            // place arr[i] at the correct position
            arr[j+1] = save;
        }
    }

    public static void main(String args[]) 
    {
        int arr[] = {9,5,1,6,11,8,4};
        insertSort(arr);

        for(int i=0;i<arr.length;i++)
        System.out.print(arr[i] +" ");   
    }
}

шығыс

1 4 5 6 8 9 11

Күрделілікті талдау

  • Уақыттың күрделілігі: T (n) = O (n)2)
  • Ол O (n) алады2) массивтің кері сұрыпталған уақыты және O (n) массивтің сұрыпталған уақыты.
  • Ғарыштың күрделілігі: A (n) = O (1)

Қосымша ақпарат

  • Кірістіруді сұрыптау - орнында сұрыптау алгоритмі.
  • Бұл тұрақты табиғат.
  • Кірістіруді сұрыптау енгізу жиымы дерлік сұрыпталған кезде пайдалы, тек бірнеше элементтер толық емес үлкен массивті дұрыс орналастырмаған.
  • Ол сұрыпталатын массивтің өлшемі кішірек болған кезде де пайдалы.

анықтамалық  Сұхбат сұрақтары