标签:
//选择排序时间复杂度(n-1)*n为n平方 void SelectSort(int *a, int n) { for (int j = 0; j < n-1; j++)//从0到n-1的搜寻 { int min = a[j];//每次搜索定义一个最小值为了与开始的位置互换 int min_i = j;//定义一个最小值的小标 for (int i = j; i < n; i++) { if (a[i] <= min) { min = a[i]; min_i = i; } }//出循环跟当前开始的元素互换,如果没有就自己跟自己互换。 a[min_i] = a[j]; a[j] = min; } } void InsertSort(int *a, int n) { for (int i = 1; i < n; i++)//从第二个数逐个开始向前面的数列插入 { int tmp = a[i]; for (int j = i; j>=0; j--) { if (tmp < a[j]) { a[j + 1] = a[j]; a[j] = tmp; }//因为默认前面的数列j前面是有序 } } } void BubbleSort(int *a, int n) { for (int i = 0; i < n-1; i++)//大循环从0到n-1,因为n-1时会跟n比较,保证n是最大的 { for (int j = 0; j < n - 1 - i; j++)//每一次都选出最大的向后面放 { if (a[j] >= a[j+1]) { int tmp = a[j]; a[j] = a[j + 1]; a[j + 1] = tmp; } } } }
标签:
原文地址:http://www.cnblogs.com/wyc199288/p/5215251.html