我目前學到的常見的有三種排序方法 插入,選擇和冒泡排序? 。
創(chuàng)新互聯(lián)公司科技有限公司專業(yè)互聯(lián)網(wǎng)基礎(chǔ)服務(wù)商,為您提供綿陽機房托管,高防服務(wù)器,成都IDC機房托管,成都主機托管等互聯(lián)網(wǎng)服務(wù)。這里面我覺得插入排序是最難理解的
這次我是結(jié)合指針來操作數(shù)組?
這個是插入排序?
#includevoid insert(int *p, int n)
{
? ? int i, j, temp;
? ? for (i = 1; i< n; i++)
? ? {
? ? ? ? temp = *(p + i);
? ? ? ? for (j = i - 1; j >= 0 && temp< *(p + j); j--)//將大于temp的元素循環(huán)后移
? ? ? ? ? ? *(p + j + 1) = *(p + j);
? ? ? ? *(p + j + 1) = temp;
? ? }
}
int main()
{
? ? int a[10] = {78, 34, 54, 23, 780, 64, 45, 75, 34, 66};
? ? insert(a, 10);
? ? for (int i = 0; i< 10; i++)
? ? ? ? printf("%d ",a[i]);
? ? printf("\n");
? ? return 0;
}
這是選擇排序
#includevoid selectsort(int *p, int n)
{
int i, j, *pt, temp;
for (i = 0; i< n; i++)
{
pt = p + i;
for (j = i + 1; j< n; j++)
{
if (*(p + j)< *pt)
pt = p + j;
}
temp = *pt, *pt = *(p + i), *(p + i) = temp;
}
}
int main()
{
int a[10] = {78, 34, 54, 23, 780, 64, 45, 75, 34, 66};
selectsort(a, 10);
for (int i = 0; i< 10; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
這是冒泡排序
#includevoid bubblesort(int *p, int n)
{
int i, j, temp;
for (int i = n - 1; i >= 0; i--)
{
for (j = 0; j< i; j++)
{
if (*(p + j) >*(p + j + 1))
{
temp = *(p + j + 1);
*(p + j + 1) = *(p + j);
*(p + j) = temp;
}
}
}
}
int main()
{
int a[10] = {78, 34, 54, 23, 780, 64, 45, 75, 34, 66};
bubblesort(a, 10);
for (int i = 0; i< 10; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧