데이터 구조 몇 가지 삽입 정렬
#include <iostream>
using namespace std;
void direct_sort(int a[], int len)
{
int i, j;
for(i=2; i<=len; i++)
{
a[0] = a[i];
j = i-1;
while(a[0] < a[j])
{
// j+1
a[j+1] = a[j];
j--;
}
a[j+1] = a[0];
}
cout<<" :";
for(i=1; i<len; i++)
cout<<a[i]<<" ";
cout<<endl;
}
void half_insert_sort(int a[], int len)
{
int i, j, low, high, mid;
for(i=2; i<=len; i++)
{
a[0] = a[i];
low = 1;
high = i - 1;
while(low <= high)
{
// high+1
mid = (low+high)/2;
if(a[0] > a[mid])
low = mid + 1;
else
high = mid - 1;
}
for(j=i-1; j>=high+1; j--)
a[j+1] = a[j];
a[high+1] = a[0];
}
cout<<" :";
for(i=1; i<len; i++)
cout<<a[i]<<" ";
cout<<endl;
}
void shell_sort(int a[], int len)
{
int d = len/2;
int i, j, temp;
while(d > 0)
{
for(i=d; i<len; i++)
{
j = i - d;
while(j >= 0)
{
if(a[j] > a[j+d])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
j = j - d;
}
else
j = -1;
}
}
d = d/2;
}
cout<<" :";
for(i=0; i<len; i++)
cout<<a[i]<<" ";
cout<<endl;
}
int main(void)
{
int a[] = {9, 4, 6, 1, 8, 3, 2};
int len = sizeof(a)/sizeof(int);
// ,a[0]
// direct_sort(a, len);
// ,a[0]
// half_insert_sort(a, len);
//
shell_sort(a, len);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.