資料結構與演算法 19交叉排序

2021-10-04 04:35:02 字數 1167 閱讀 2749

description

輸入n個數,把所有奇數字置上的數從小到大排序,把偶數字置上的數從大到小排序。

input

輸入的第一行是乙個正整數n(2<=n<=100)。 第二行是n個用空格隔開的整數。

output

輸出只有一行n個數,是按要求排序後的序列,用空格隔開。

sample input

61 2 3 4 5 6

sample output

1 6 3 4 5 2

參考程式

#include

#define len 100

intsplit

(int a,

int low,

int high)

if(low==high)

a[low++

]=a[high]

;while

(low<=temp)

if(low==high)

a[high--

]=a[low];}

a[low]

=temp;

return low;

}void

quicksort

(int a,

int start,

int end)

}void

crossoutput

(int a,

int b,

int anum,

int bnum)

printf

("%d "

,b[j++])

;}printf

("%d\n"

,b[j]);

}else

}printf

("%d\n"

,a[i]);

}}void

reversearray

(int a,

int n)

}int

main()

else

}quicksort

(oddarray,

0,oddnum-1)

;if(evennum!=0)

else

return0;

}

注意:本題中要考慮只有乙個元素的情形,即偶數陣列為空,無需排序。本題使用的排序方法為快速排序。

python演算法與資料結構(19)堆

堆 一種完全二叉樹,有最大堆和最小堆兩種。最大堆 根總是最大值,最小的值儲存在葉節點中,最小堆 每個非葉子節點的兩個孩子的值都比它大。堆的操作 插入新的值,依然保證堆的最大堆或者最小堆的結構。刪除乙個值。堆的表示 使用陣列表示堆。parent int i 1 2 left 2i 1 right 2i...

演算法與資料結構實驗題1 9

實驗任務 上回說到,你奔走於各個世界線拯救靜靜。現在,完成任務的你決定玩個簡單的遊戲靜一靜。我們知道,數字在計算機裡是用二進位制儲存的,現在你想知道如果把乙個數字的二進位制倒過來是多少。比如 int a 5,用二進位制表示就是00000000000000000000000000000101。把它倒過...

C 資料結構與演算法揭秘19

這節,我們介紹基數排序和歸併排序。一 基數排序 基數排序 radix sort 的設計思想與前面介紹的各種排序方法完全不同。前面介紹的排序方法主要是通過關鍵碼的比較和記錄的移動這兩種操作來實現排序的,而基數排序不需要進行關鍵碼的比較和記錄的移動。基數排序是一種借助於多關鍵碼排序的思想,是將單關鍵碼按...