Во-первых, после чего узнать с течением времени мы забываем?
И использовать его, потому что нет никакой необходимости рассматривать интервью и не очень обращает внимания. Теперь дает ему смысл: 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