┌─ 소리 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
┌─ 프로그램 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
├─ 재생 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
├─ 조작 ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
defshell_sort(a):
gap =len(a)//2while gap >0:for i inrange(gap,len(a)):
key = a[i]
j = i
while j >= gap and a[j - gap]> key:
a[j]= a[j - gap]
j -= gap
a[j]= key
gap //=2
functionshellSort(a){for(let gap = a.length >>1; gap >0; gap >>=1){for(let i = gap; i < a.length; i++){const key = a[i];let j = i;while(j >= gap && a[j - gap]> key){
a[j]= a[j - gap];
j -= gap;}
a[j]= key;}}}
voidshell_sort(int a[],int n){for(int gap = n /2; gap >0; gap /=2){for(int i = gap; i < n; i++){int key = a[i];int j = i;while(j >= gap && a[j - gap]> key){
a[j]= a[j - gap];
j -= gap;}
a[j]= key;}}}
voidshell_sort(std::vector<int>& a){for(size_t gap = a.size()/2; gap >0; gap /=2){for(size_t i = gap; i < a.size(); i++){int key = a[i];
size_t j = i;while(j >= gap && a[j - gap]> key){
a[j]= a[j - gap];
j -= gap;}
a[j]= key;}}}
staticvoidShellSort(int[] a){for(int gap = a.Length/2; gap >0; gap /=2){for(int i = gap; i < a.Length; i++){int key = a[i];int j = i;while(j >= gap && a[j - gap]> key){
a[j]= a[j - gap];
j -= gap;}
a[j]= key;}}}
staticvoidshellSort(int[] a){for(int gap = a.length /2; gap >0; gap /=2){for(int i = gap; i < a.length; i++){int key = a[i];int j = i;while(j >= gap && a[j - gap]> key){
a[j]= a[j - gap];
j -= gap;}
a[j]= key;}}}