Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Sắp xếp có chọn lọc Java

19:29 25-10-2021 486 lượt xem 3 bình luận

Hôm nay mình có làm bài tập và gặp 1 bài tập như thế này

Cho 1 dãy sỗ: 1, 4, 6, 5, -1, 22, 17, 14, -1, 3, -5, -42, -1, 10, 50.

Sắp xếp lại dãy số và giữ nguyên vị trí của -1

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Khoaa đã bình luận 20:12 04-11-2021
var arr = [1, 4, 6, 5, -1, 22, 17, 14, -1, 3, -5, -42, -1, 10, 50];

var value = [];

for (let i = 0; i < arr.length; i++) {
  if (arr[i] != -1) {
    value.push(arr[i]);
  }
}
arrSort = value.sort(function (a, b) {
  return a - b;
});

let j = 0;
for (let i = 0; i < arr.length; i++) {
  if (arr[i] != -1) {
    arr[i] = arrSort[j];
    j++;
  }
}

Đây là javascript bạn tự convert sang Java nhé. Vẫn đang cố tìm cách để đưa về 1 vòng for

Khoaa đã bình luận 20:09 04-11-2021
var arr = [1, 4, 6, 5, -1, 22, 17, 14, -1, 3, -5, -42, -1, 10, 50];

var value = [];

for (let i = 0; i < arr.length; i++) {
  if (arr[i] != -1) {
    value.push(arr[i]);
  }
}
arrSort = value.sort(function (a, b) {
  return a - b;
});
console.log(arrSort);
let j = 0;
for (let i = 0; i < arr.length; i++) {
  if (arr[i] != -1) {
    arr[i] = arrSort[j];
    j++;
  }
}

Đây là javascript bạn tự convert sang Java nhé. Vẫn đang cố tìm cách để đưa về 1 vòng for

Supporter Moderator đã bình luận 20:36 25-10-2021

Mình có ý tưởng là lưu vị trí của các số -1 sau đó tạo mảng mới và sắp xếp các số còn lại, sau khi sắp xếp xong thì chèn các -1 như vị trí ban đầu là được.

Câu hỏi mới nhất