冒泡排序和选择排序(C++实现)
2017-06-15 00:37
309 查看
冒泡排序:从数组的第一个元素开始(arr[0]),两两比较(arr
,arr[n+1]),如果前面的数大于后面的数,则交换两个元素的位置,把大的数往后移动。经过一轮比较后,最大的数会被交换到最后的位置(arr[n-1])。
选择排序:通过比较,选出每一轮中最值元素(最大或最小),然后把它和本轮中的第一个元素进行交换,所以这个算法的关键是要记录每次比较的结果,即每次比较后的最值位置(下标)。
冒泡排序代码:
选择排序代码:
,arr[n+1]),如果前面的数大于后面的数,则交换两个元素的位置,把大的数往后移动。经过一轮比较后,最大的数会被交换到最后的位置(arr[n-1])。
选择排序:通过比较,选出每一轮中最值元素(最大或最小),然后把它和本轮中的第一个元素进行交换,所以这个算法的关键是要记录每次比较的结果,即每次比较后的最值位置(下标)。
冒泡排序代码:
void bubblesort(int arr[], int sz) { int i, j; for (i = 0; i < sz; i++) { for (j = 1; j < sz - i; j++) { if ((arr[j-1]) >(arr[j])) { int tmp = 0; tmp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = tmp; } } } } int main() { int arr[10] = { 10, 8, 9, 5, 4, 3, 1, 2, 7, 6 }; int sz = sizeof(arr) / sizeof(arr[0]); bubblesort(arr, sz); int i = 0; for (i = 0; i < sz; i++) { cout << arr[i] << " "; } system("pause"); return 0; }
选择排序代码:
void SelectSort(int *a, int len) { for (int i = 0; i<len - 1; i++) { int k = i; int key = a[i]; for (int j = i + 1; j<len; j++) { if (a[j]<key) { k = j; key = a[j]; } } if (k != i) swap(a[i], a[k]); } } int main() { int arr[10] = { 10, 8, 9, 5, 4, 3, 1, 2, 7, 6 }; int sz = sizeof(arr) / sizeof(arr[0]); SelectSort(arr, sz); int i = 0; for (i = 0; i < sz; i++) { cout << arr[i] << " "; } system("pause"); return 0; }
相关文章推荐
- 选择排序、冒泡排序、插入排序、基数排序、快速排序、归并排序完整C++实现
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序的C++代码实现
- 插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序——C++实现
- 插入排序、冒泡排序、选择排序、希尔排序、高速排序、归并排序、堆排序和LST基数排序——C++实现
- C++实现冒泡排序,选择排序,插入排序,快速排序,归并排序
- C++实现八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序等
- java 实现 冒泡排序、选择排序、插入排序。
- C#实现所有经典排序算法(选择排序 冒泡排序 快速排序)
- C#实现整数冒泡排序、选择排序
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- java 实现 冒泡排序、选择排序、插入排序。
- C#实现的3种排序算法--冒泡排序、选择排序、插入排序
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 几种基本的排序算法(选择排序,冒泡排序,快速排序,归并排序,希尔排序)C语言实现
- c++:选择排序和冒泡排序
- C++各种常见排序算法 冒泡排序,插入排序,快排序,选择排序,希尔排序
- Java实现排序(快速排序、冒泡排序、选择排序、基数排序、插入排序)
- C#实现的3种排序算法--冒泡排序、选择排序、插入排序
- C#实现排序(冒泡排序,选择排序,插入排序,希尔排序)