选择排序算法中的交换数值问题
来源:互联网 发布:人工智能豆瓣 编辑:程序博客网 时间:2024/05/22 01:52
交换数值我们一般用异或。在选择排序中,我们一般假设第一个数为最小值,然后与后面的真正最小值交换。但是如果后面没有找到比第一个数还要小的,而你任然执行交换的话,如果用temp变量是可行的。但是用异或的话,自己异或自己变为0了。然后这个数值就成为0了。引起数据错误。
//选择排序public static void selectSort(int arr[],int n){for(int out=0;out<n-1;out++){int min=out;for(int in=out+1;in<n;in++){if(arr[in]<arr[min]) {min=in;}}//出现错误,如果min就是out的话,就会自己异或自己,然后等于0了,应该判断if(min!=out){arr[min]=arr[min]^arr[out];arr[out]=arr[min]^arr[out];arr[min]=arr[min]^arr[out];}}}
0 0
- 选择排序算法中的交换数值问题
- C语言 - 选择排序中的--异或交换--问题分析
- 交换排序:冒泡排序、选择排序【排序算法】
- 数值交换算法
- 数值交换算法
- 经典数值交换算法
- 排序算法之基本排序算法:交换、选择、插入
- 【自考】排序算法-插入、交换、选择、归并排序
- 【算法面试题】交换排序问题
- c中的指针数值交换
- 选择,插入,交换,冒泡,希尔排序算法的效率比较
- 各种排序算法(插入、交换、选择、归并)
- 选择排序算法 及 异或交换易出错陷阱
- 算法学习——不交换的选择排序
- 五类排序算法(插入,交换,选择,归并)
- 排序算法整理(C++):插入排序、交换排序、选择排序、归并排序
- 排序算法-交换排序
- 算法之排序——交换排序(选择排序,冒泡排序)
- hdu 1166 敌兵布阵 解题报告
- hdu2235 机器人的容器
- TOJ:Least Common Multiple
- 图的广度优先遍历算法
- java中static的作用
- 选择排序算法中的交换数值问题
- c++ primer阅读笔记-15章-2
- 微软面试100题之20题:输入一个表示整数的字符串,把该字符串转换成整数并输出
- sort函数
- 点连通分量
- 不得不说的故事:STL内存管理
- 安装sql2005,没有SQL Server management studio的原因分析及解决方案
- 怎样校验MD5码及sha1码数值(适用于Windows及Linux平台)
- 手把手教你使用TI MSP430 LaunchPad