C++排序算法之选择排序算法

来源:互联网 发布:java中什么是工厂模式 编辑:程序博客网 时间:2024/05/16 07:49

2.选择排序算法

思想:第一趟,找到最小元素,与第一个元素交换;第二趟,找到次小元素和第二个元素交换;以此类推,需要做N-1次循环。每次循环中,再通过两两比较找到较小元素,记录元素下标或者指针,最后交换。

void select_sort(int a[], int n){for (int i = 0; i < n - 1; i++){int t=i;for (int j = i+1; j < n ; j++){if (a[t]>a[j])t = j;}if (t != i){int temp = a[i];a[i] = a[t];a[t] = temp;}}}
用指针
void select_sort(int a[], int n){for (int i = 0; i < n - 1; i++){int *p = a + i;for (int j = i+1; j < n ; j++){if (*(a+j)<*p)//if (a[t]>a[j])p = a+j;}if (p != a+i){int temp = *(a+i);*(a + i) = *p;*p = temp;}}}




原创粉丝点击