演算法與資料結構 排序

2022-05-24 17:57:13 字數 1559 閱讀 2474

void x_sort (elementtype a, int n)  //預設討論從小到大的整數排序
void bubble_sort(elementtype a, int n)

} if (flag == 0) break;//無交換則退出

}}

void insert_sort(elementtype a, int n)

a[i] = tmp;

}}

優點:穩定

void sheel_sort(elementtype a, int n)

a[i] = tmp;

} }}

增量序列d因情況而異,特殊情況下互質的增量序列是沒有效果的;

void select_sort(elementtype a, int n)

} int tmp = a[i];

a[i] = a[minid];

a[minid] = tmp;

}}

void merge(elementtype a, elementtype temparr, int left, int mid, int right)

else

}while (l_pos <= mid)

while (r_pos <= right)

while (left <= right) }

void msort(elementtype a, elementtype temparr, int left, int right)

}void merge_sort(elementtype a, int n)

else

}

/* l = 左邊起始位置, r = 右邊起始位置, rightend = 右邊終點位置*/

void merge( elementtype a, elementtype tmpa, int l, int r, int rightend )

while( l <= leftend )

tmpa[tmp++] = a[l++]; /* 直接複製左邊剩下的 */

while( r <= rightend )

tmpa[tmp++] = a[r++]; /* 直接複製右邊剩下的 */

// 該過程可忽略

// for( i = 0; i < numelements; i++, rightend -- )

// a[rightend] = tmpa[rightend]; /* 將有序的tmpa複製回a */}

void merge_pass( elementtype a, elementtype tmpa, int n, int length )

void merge_sort( elementtype a, int n )

free( tmpa );

}else printf( "空間不足" );

}

未完待續。。。。。

資料結構與演算法 排序

排序原理 1.比較相鄰的元素。如果前乙個元素比後乙個元素大,就交換這兩個元素的位置。2.對每一對相鄰元素做同樣的工作,從開始第一對元素到結尾的最後一對元素。最終最後位置的元素就是最大 值。氣泡排序的 實現 public static void sortpop int arr 測試 public st...

《資料結構與演算法 排序》

1 快速排序 1.記錄 排序中的結點 2.檔案 一系列結點構成的線性表 3.排序又稱分類 4.排序碼 結點中乙個或者多個字段,其值作為排序運算中的根據。基本思想 每次選擇待排序的記錄序列的第1個記錄,按照排序碼的大小將其插入到已排序的記錄序列的適當位置,直到所有記錄全部排序完畢。最簡單的排序方法。整...

資料結構與演算法 排序演算法

帶問題思考以下幾點 1 每個演算法的思想是什麼?2 每個演算法的穩定性怎樣?時間複雜度是多少?3 在什麼情況下,演算法出現最好情況 or 最壞情況?4 每種演算法的具體實現又是怎樣的?n每次選擇乙個元素k插入到之前已排好序的部分a 1 i 中,插入過程中k依次由後向前與a 1 i 中的元素進行比較。...