编程面试:排序(一)

来源:互联网 发布:淘宝售前客服培训ppt 编辑:程序博客网 时间:2024/06/15 07:39
/**
* 交换数组里n和0的位置
* array: 存储[0-n)的数组
* len: 数组长度
* n: 数组里要和0交换的数

*/

解题思路:

1.交换:将0与array[0]交换,使0在array[0]的位置,

2,遍历数组找到最小值,

3.利用三次交换将第i小的数放在第一个个位置。


extern void swap_with_zero(int* array, int len, int n);


class Solution {
public:
/**
* 调用方法swap_with_zero来对array进行排序
*/
void sort(int* array, int len) {
int i = 0, min = len;
int j, k;
//while(array[i] != 0){
//   i++;
//  }        
//cout<<array[i];
swap_with_zero(array, len, array[0]);
// cout<<array[i];


for (k = 1; k<len; k++) {
for (j = k; j<len; j++) {
if (array[j]<min)
min = array[j];
}
//cout<<min;
swap_with_zero(array, len, array[k]);
swap_with_zero(array, len, min);
swap_with_zero(array, len, array[0]);
min = len;
}




}
};

0 0
原创粉丝点击