Guest User

Untitled

a guest
Mar 23rd, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. /**
  2. * 冒泡排序,此方法每次固定头部最小值,即前方为有序区,时间复杂度O(n^2),空间复杂度O(1)
  3. * @param {Array} arr 需要排序的数据源
  4. * @return {Array} arr 排序后数组
  5. */
  6. function bubbleSort(arr) {
  7. var len = arr.length;
  8. for(var i=0; i<len-1; i++) {
  9. for(var j=i+1; j<len; j++) {
  10. if(arr[i] > arr[j]) {
  11. var temp = arr[i];
  12. arr[i] = arr[j];
  13. arr[j] = temp;
  14. }
  15. }
  16. }
  17. return arr;
  18. }
  19.  
  20. function bubbleSort2(arr) {
  21. var len = arr.length;
  22. var isSorted = false; // 如果一次循环中未进行数据交换则已经有序
  23. var cursor = 0; // 游标,每次循环后方有序区则不需要进行比较
  24. while(!isSorted) {
  25. isSorted = true;
  26. for(var i=0; i<len-1-cursor; i++) {
  27. if(arr[i+1] < arr[i]) {
  28. isSorted = false; // 需要交换,还是非有序的
  29. var temp = arr[i+1];
  30. arr[i+1] = arr[i];
  31. arr[i] = temp;
  32. }
  33. }
  34. cursor += 1;
  35. }
  36. return arr;
  37. }
Add Comment
Please, Sign In to add comment