选择法排序过程(选择法)
大家好,小讯来为大家解答以上的问题。选择法排序过程,选择法这个很多人还不知道,现在让我们一起来看看吧!
1、// 我把你的程序修改了下,添加了些注释,你应该会看明白滴// sort(int *, int)函数是由大到小的排序方法。
2、采用的算法// 是第一次从x[0]...x[4]中选出个最大的数,然后记录下它的索引,// 如果第一个数不是最大的,就把第一个数和最大数进行交换,使得// x[0]是五个书中的最大数,第二次就从x[1]...x[4]中选一个最大的// 然后把它放在x[1]的位置上。
3、5个数,其实只需要四次就可以排好序滴void sort(int *x,int n){ // i,j都是循环变量temp是用于交换的临时变量,max是用于记录每一趟循环 // 中找到的最大值的下标。
4、我这里的temp对应你原理的t,max对应你原来的k int i, j, temp, max; // 1.外层的for循环用于控制查找的趟数,n个数排序,只需要n-1趟排序就可以滴 // 2.你原来是 i<=n-1其实可以改为i 5、 // 3.比如 1 2 3 这三个数排序,你可以先 假设第一个数即1是最大的,然后让1与第二个 // 4.数进行比较即1与2比较1 < 2你记下2对应的下标,再让2与第三个数比较2 < 3再记下 // 5. 3的下标所以3是最大的数字把3放到1的位置,把1放到3的位置,即交换位置。 6、 // 6.经过一次排序后变为3 1 2 第二次再排1 与2先假设1是1与2中最大的1<2记下2的下标 // 7.交换1,2位置变为2 1 所以3个数进过两趟排序后已经变为有序了即3 2 1// N个数只需N-1趟循环便可有序,外层循环用于控制循环趟数 for(i=0; i 本文到此分享完毕,希望对大家有所帮助。 免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。