/*
2023年7月7日20:30:37
排序的目的:查詢
排序是查詢的前提(google搜尋)
分類:
冒泡(穩定o(n^2))
插入(穩定o(n^2)),從前往後依次插入到前面的有序部分,始終保持前面部分有序
選擇(n^2),先從所有序列中選擇最小的數字與第乙個數字互換,再從餘下的序列中尋找次最小值與第二個數字互換。。。
快排(最理想 o(nlogn) 最差o(n^2)),先找第乙個元素的確切位置,把序列分成兩半;再找左邊第乙個元素的位置,分成兩半;再找右邊第乙個元素的位置。。。
歸併(穩定nlgn),先兩個一組排序,保證組內有序;再四個一組排序,保證組內有效;再八個
*/1、氣泡排序
void bubble_sort(int* a, int
len)//有效長度}}
return;
}
2、插入排序
void insert_sort(int* a, int
len)//將無序部分的第乙個元素插入到前面有序部分
a[j+1] = temp;//不滿足條件後跳出迴圈,j 必然 -1
}}
3、選擇排序
void select_sort(int* a, int len)//選擇最小值與第乙個元素交換,再在餘下的元素中選擇次小值與第二個元素交換
}t = a[i];
a[i] = a[min];
a[min] = t;
}}
4、快速排序
int findpos(int* a, int low, int high)
a[low] = val;
return low;
}void quick_sort(int* a, int low, int high)//第二個引數表示第乙個元素的下標,第三個引數表示最後乙個元素的下標
}
各種排序演算法實現
1 選擇排序 最壞情況 時間複雜度為o n 2 平均時間複雜度o n 2 最好情況 時間複雜度為o n 2 最差空間複雜度 需要輔助空間o 1 不是穩定排序 實現 void swap int a,int b void selectionsort int a,int n if k i swap a i...
各種排序演算法java實現
插入排序 package org.rut.util.algorithm.support import org.rut.util.algorithm.sortutil author treeroot since 2006 2 2 version 1.0 public class insertsort ...
各種排序演算法java實現
插入排序 package org.rut.util.algorithm.support import org.rut.util.algorithm.sortutil author treeroot since 2006 2 2 version 1.0 public class insertsort ...