幾種排序和查詢方法

2021-10-23 08:43:22 字數 1562 閱讀 8747

本題要求將給定的n個整數從小到大排序後輸出。輸出時相鄰數字中間用乙個空格分開,行末不得有多餘空格。

#include

# define maxn 10

intmain()

//從後往前兩兩比較相鄰元素的值

for( i=

1;i}for

(i=0

;i)return0;

}

本題要求將給定的n個整數從小到大排序後輸出。輸出時相鄰數字中間用乙個空格分開,行末不得有多餘空格。

#include

# define maxn 10

intmain()

for(k=

0;k1;k++

)}

temp=a[index]

;a[index]

=a[k]

;a[k]

=temp;

}for

(i=0

;i)else

}printf

("\n");

return0;

}

本題要求編寫程式,將乙個給定的整數插到原本有序的整數序列中,使結果序列仍然有序。

輸入在第一行先給出非負整數n(n <10);第二行給出n個從小到大排好順序的整數;第三行給出乙個整數x。

在一行內輸出將x插入後仍然從小到大有序的整數序列,每個數字後面有乙個空格。

51 2 4 5 7

31 2 3 4 5 7

#include

#define maxn 10

intmain()

for(i=

0;i)scanf

("%d"

,&a[i]);

scanf

("%d"

,&x)

;for

(i=0

;i) a[i]

=x;break;}

else

if(i==n-1)

} n++

;//總數加1

for(i=

0;i)return0;

}

按照從小到大的順序,輸入n個整數並存入陣列a中,然後在陣列a中查詢給定的x。如果陣列a中的元素與x的值相同,輸出相應的下標(下標從0開始);如果沒有找到,輸出「not found」。如果輸入的n個整數沒有按照從小到大的順序排列,或者出現了相同的數,則輸出「invalid value」。

1 檢查數列是否完全遞增

2 不斷將x與mid比對,調整縮小left與right的範圍

3 用變數found確定是否找到

#include

# define maxn 10

intmain()

sorted=1;

for(i=

1;iif(sorted ==0)

else

else

if(x)else}if

(found !=0)

else

}return0;

}

幾種查詢方法

前言 在乙個陣列中,對於資料的查詢方法有多種,下面介紹幾種最常見的元素查詢 1 普通查詢 這是最簡單粗暴的查詢方式,通過遍歷所有元素,找到最陣列中的位置。通過 簡單實現 include include include define max 10 int searchnum int a,int dat...

幾種排序方法

排序方法 平均最好 最壞輔助空間 穩定性冒泡 o n2 o n o n2 o 1 穩定簡單選擇 o n2 o n2 o n2 o 1 穩定插入 o n2 o n o n2 o 1 穩定希爾 o nlogn o n2 o n1.3 o n2 o 1 不穩定堆排序 o nlogn o nlogn o n...

幾種排序方法

一 選擇排序 原理 1 依次比較陣列中元素,從而記錄下陣列中最小的元素 2 將最小元素與陣列第乙個元素交換 3 依次比較陣列中剩餘元素,從而記錄下剩餘陣列中最小的元素 與陣列第二個元素交換,以此類推 特點 需要大約 n 1 n 2 1 n 2 2次比較和n次交換,演算法的時間效率取決於比較的次數。i...