冒泡算法:时间复杂度O(n^2)、比较稳定
void Sub_1() { /*使用双for循环,然后第一个for循环确定遍历次数 第二个for循环来进行比较,进行转换*/ int v1[5] = { 1,4,3,2,6 }; int i, j; for (i = 0; i < (sizeof(v1) / sizeof(int)); i++) { for (j = i + 1; j < (sizeof(v1) / sizeof(int)); j++) { if (v1[i] > v1[j])//当前是否大于它后面的那些元素,如果大,则换到后面 { //1 4 3 2 6 //1 3 4 2 6 //1 2 4 3 6 //1 2 3 4 6 swap(v1[i], v1[j]);//交换两数位置 } } } }
选择排序:时间复杂度O(n^2) 、不稳定
void Sub_2() { int v1[5] = { 1,4,3,2,6 }; int Length = sizeof(v1) / sizeof(int); int Index; for (int i = 0; i < Length - 1; i++) { Index = i; for (int j = i + 1; j < Length; j++) { if (v1[j] < v1[Index]) { Index = j;//确保每次Index得到的索引是最小的数据 } } if (v1[Index] < v1[i]) { swap(v1[i], v1[Index]); } } }
…待继续更新