选择 (从小到大排序)
int a[5] = {5,4,3,2,1};
a[0] a[1] a[2] a[3] a[4]
5 4 3 2 1
1 5 4 3 2 第一轮比较(拿a[0]和后面的元素依次比较 如果a[0]>a[i]那么两个数交换)
1 2 5 4 3 (第二轮比较,拿a[1]和后面的元素依次比较,如果a[1]>a[i]那么两个数交换)
1 2 3 5 4 第三轮 拿a[2]
1 2 3 4 5 第四轮 拿a[3]和后面的比较
*/
//用一个外循环控制比较的轮次
int main(int argc, const char * argv[])
{
int a[5] = {5,2,3,4,1};//要求从小到大排序
//选择排序从小到大排序模板
for (int i = 0; i < 5-1; i++) {//控制轮次
//内循环控制比较的过程
for (int j = i+1; j < 5; j+选择 (从小到大排序)
int a[5] = {5,4,3,2,1};
a[0] a[1] a[2] a[3] a[4]
5 4 3 2 1
1 5 4 3 2 第一轮比较(拿a[0]和后面的元素依次比较 如果a[0]>a[i]那么两个数交换)
1 2 5 4 3 (第二轮比较,拿a[1]和后面的元素依次比较,如果a[1]>a[i]那么两个数交换)
1 2 3 5 4 第三轮 拿a[2]
1 2 3 4 5 第四轮 拿a[3]和后面的比较
*/
//用一个外循环控制比较的轮次
int main(int argc, const char * argv[])
{
int a[5] = {5,2,3,4,1};//要求从小到大排序
//选择排序从小到大排序模板
for (int i = 0; i < 5-1; i++) {//控制轮次
//内循环控制比较的过程
for (int j = i+1; j < 5; j++) {
if (a[i] > a[j]) {//a[i] < a[j]降序
int tmp;
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
for (int i = 0; i < 5; i++) {
printf("%d ",a[i]);
}
//思考:如何 模拟出 选择排序的时间复杂度???
return 0;
}
+) {
if (a[i] > a[j]) {//a[i] < a[j]降序
int tmp;
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
for (int i = 0; i < 5; i++) {
printf("%d ",a[i]);
}
//思考:如何 模拟出 选择排序的时间复杂度???
return 0;
}