1、交换排序包括冒泡排序和快速排序两种方式
2、所谓交换排序就是通过两两比较待排序元素的关键字,发现两个元素的次序相反时即进行交换,直到没有反序的元素为止。
3、 冒泡排序
注意:冒泡排序每趟产生的有序区一定是全局有序区域,也就是说每趟产生的有序区中所有元素都归位了。
/*
核心代码
*/
void bubbleSort(int array[],int arrayLength) {
int length = arrayLength; boolean flag = true; //一个标记 for (int i = 0; i < length-1 && flag; i++) {//加这个条件就是当有序的时候就不用重复后面的操作了 flag = false;//进入循环体,就置为false for (int j = 0; j < length - i - 1; j++) { if (array[j] > array[j + 1]) { swap(j, j + 1, array);// 相邻的两个元素比较,将大的放到最右边 flag = true;//存在反序的就将flag置为true } } } }
void swap(int oneIndex, int anotherIndex, int array[]) {
int temp = array[oneIndex];
array[oneIndex] = array[anotherIndex];
array[anotherIndex] = temp;
}
优化后的算法解决了有序数组重复比较的问题,对象能有所优化。
参考博文:http://blog.csdn.net/ysjian_pingcx/article/details/8653732
4、
我有个朋友是爵士音乐家,他有次跟我说:如果你不是乐队里最差的演奏者,马上换支乐队。我现在在Spotify工作,在这里我每天都觉得自己是个【狗屁程序员】,也因此我离开了上一家公司,从Spotify重头开始。当我在这里再也感觉不到自己是个【狗屁程序员】的时候,我会选择离开,然后找一个能让我再次感到自己是坨屎的地方。这种策略在我的职业生涯里确实 帮了我大忙。
------译自 Quora