Сложите в обратном направлении: Выбор Сортировка

Оригинальная ссылка: http://www.cnblogs.com/yuhui-snail/p/8521340.html

Во-первых, после чего узнать с течением времени мы забываем?

И использовать его, потому что нет никакой необходимости рассматривать интервью и не очень обращает внимания. Теперь дает ему смысл: 1, что является прочной основой, прежде чем они действительно могут вспомнить 2. аналогии и готовы раздать, то интервью может PK от большого количества людей. В противном случае сложный алгоритм, чтобы увидеть школу, всегда только выучить один без их собственного мышления на внутренней стороне.

Во-вторых, выбор сортировки код алгоритма

# include <iostream>
 что используя  пространство имен STD; 

недействительным сортировка выбором ( INT ARR [], INT н-) {
     для ( INT I = 0 ; я <п, я ++ ) {
         INT minIndex = I; 
// Найти минимальное значение I ~ п и затем преобразования положения
для ( Int J = I + 1. , J <п; j ++ ) { ЕСЛИ (ARR [Дж] < ARR [minIndex]) { minIndex = J; } своп (ARR [I], ARR [Дж ]); } } } INT основных ( INT ARGC, Const символ * ARGV []) { Int а [ 10 ] = { 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 }; сортировка выбор (а, 10 ); для ( INT I = 0 ; г < 10 ; я ++ ) соиЬ << а [я] << " " ; соиЬ <<епсИ; вернуться 0 ; }

 Основная идея: каждый раз, чтобы найти наименьшее значение.

В-третьих, коды для вставки сортировки

// сортировка вставки 
шаблон <Ьурепат T> недействительная сортировка вставки (ARR T [], INT н-) {
     // потому что элемент-не нужен сравнивать непосредственно с меткой элемента 1 от начала сравнения для ( INT I = 1 ; я <н-, я ++ ) {
         для ( INT J = I, J> 0 , J, ) { ЕСЛИ (ARR [J] , <ARR [J- . 1 ]) { 
                своп (ARR [J], ARR [Дж - . 1 ] ); 
            } еще BREAK ; 
        } 
    } 
}

    
            
             

Мышление: сортировка вставки, с самого начала меченого элемента перед ним и сравнением элементов, может изменить положение малых и больших выходов петли. Подстрочный 2 элемента с самого начала ...

Например, 8,6,2,3,1,5,7,4

Сначала надо стать 6,8,2,3,1,5,7,4, а затем сравнить его с предыдущим номером 2. , ,

В-четвертых, улучшение алгоритма сортировки вставками

После обмена в три раза назначение. Улучшение является улучшение обмена, обмена только раз в сравнении.

//改进版插入排序

template<typename T>
void insertionExcellentSort(T arr[],int n){
    for (int i = 1; i < n; i++) {
         T e = arr[i];
        int  j;
        for ( j = i; j > 0 && arr[j-1] > e; j--) {
            arr[j] = arr[j-1];
        }
        arr[j] = e;
    }
}

Воспроизводится в: https: //www.cnblogs.com/yuhui-snail/p/8521340.html

рекомендация

отblog.csdn.net/weixin_30954265/article/details/94792701