資料結構排序1

2021-08-04 23:01:53 字數 1954 閱讀 8278

void swap(int a,int i,int j)

void printfa(int a,int len)

printf("\n");

}

1、氣泡排序

氣泡排序演算法的運作如下:(從後往前)

1、比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

3、針對所有的元素重複以上的步驟,除了最後乙個。

4、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

//氣泡排序

int main()

; int len = sizeof(a) / sizeof(a[0]);

int i,j;

for(i = 0;i < len - 1;i++ ) }

printfa(a,len);

return 0;

}

2、雞尾酒排序

//雞尾酒排序

int main()

; int len = sizeof(a) / sizeof(a[0]);

int i;

int left = 0;

int right = len - 1;

while(left < right)

right--;

for(i = right;i > left;i--)

left++;

} printfa(a,len);

return 0;

}

3、選擇排序

//選擇排序

int main()

; int len = sizeof(a) / sizeof(a[0]);

int i,j;

for(i = 0;i < len - 1;i++ )

if(min != i)

swap(a,min,i); }

printfa(a,len);

return 0;

}

4、插入排序

int main()

; int len = sizeof(a) / sizeof(a[0]);

int i,j;

int get;

for(i = 1;i < len;i++ )

a[j + 1] = get; }

printfa(a,len);

return 0;

}

5、插入排序:二分法查詢

//插入排序:二分法查詢

int main()

; int len = sizeof(a) / sizeof(a[0]);

int i,j,left,right,get,mid;

for(i = 1;i < len;i++ )

for(j = i - 1;j >= left;j--)

a[j + 1] = a[j];

a[left] = get; }

printfa(a,len);

return 0;

}

6、希爾排序

//希爾排序

int main()

; int len = sizeof(a) / sizeof(a[0]);

int i,j;

int get;

int d = len;

doa[j + d] = get;

} }while(d > 1);

printfa(a,len);

return 0;

}

資料結構1 排序

就算複習再緊張,也要動手實踐資料結構中的基本演算法,徹底理解演算法的本質。不要讓任何理由成為不程式設計的藉口。從快速排序開始,將演算法問題一一攻克。複習提綱 基本資料結構 棧和佇列,陣列和鍊錶 樹和二叉樹 二叉查詢樹 平衡二叉樹 雜湊表 排序演算法 選擇排序 氣泡排序和快速排序 堆和堆排序 計數排序...

期末複習 資料結構 排序(1)

1.排序 將一組 無序 的記錄序列調整為 有序 的記錄序列。2.內排序和外排序 概念 衡量效率的方法 排序方法 內部排序 插入排序 快速排序 選擇排序 歸併排序 基數排序等 外部排序 3.穩定排序和非穩定排序 穩定性概念 排序前兩個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。4...

波波的資料結構 排序(1)

波波的資料結構屬實上的快,這裡將會寫些pta的解析,算是複習 預習,幫助我與大家期末不掛科 2 1對一組包含10個元素的非遞減有序序列,採用直接插入排序排成非遞增序列,其可能的比較次數和移動次數分別是 a.100,100 b.100,54 c.54,63 d.45,44 解析 他問的是可能的比較次數...